Área de visualização infinita no swing  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Eu preciso desenvolver uma ferramenta que tenha uma área de visualização variável, tipo autocad, onde para mover a área o usuário clica e a movimenta.

O problema é que não tenho idéia por onde começar, alguem tem alguma dica de como eu poderei realizar esta façanha?

Obrigado!
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Ajuda conceitual:

Faz um listener pra ver um drag-n-drop do mouse no painel.

se arrastando
se não existe area util na direção do drag
redimensiona painel e arruma posições dos itens atuais
move painel


Você calcula a direção do drag pelo ponto anterior do mouse e ponto atual.
Veja se naquela direção existe mais painel ou se já está no limite...
Caso você precise aumentar ou painel e o usuario esteja indo para o topo, esquerda ou os dois, você terá que realocar os objetos do painel para que visualmente eles fiquem no 'mesmo lugar'...

Acho que isso vai dar bastante trabalho ^^
A minha solução foi algo que imaginei agora, nunca fiz algo parecido nem sei se existe algo pronto pra te ajudar...

Espero ter ajudado....

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
fantomas
GUJ Master
[Avatar]

Membro desde: 24/04/2008 16:10:55
Mensagens: 1531
Localização: Terra (maior parte do tempo)
Offline

As scroll bars já não dariam conta deste recado?

flws
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Guilherme Gomes, eu também imaginei isso a principio, mas como vc disse parece ser trabalhoso d+ (se for assim eu acho q vou criar o controle AreaInfinita)

fantomas, poiseh eu posso meter um scroll bar do lado direito e em baixo, a principio com a tela limpa eles nao apareceriam mas vai chegar uma hora q o cara irá precisar rolar esta barra mas como c ela ainda nao está ativa? entendeu? acho q nao da nao :/

Obrigado por enquanto!
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Alguém conhece o programa de UML Jude? Aquela área de edição dele parece ser bem o que eu quero e se não estou enganado o Jude foi feito em Java também.

Vocês sabem como fazer uma área tipo aquela? Será que o Jude tem o código aberto?

Qualquer dica é bem vinda!

Obrigado
fantomas
GUJ Master
[Avatar]

Membro desde: 24/04/2008 16:10:55
Mensagens: 1531
Localização: Terra (maior parte do tempo)
Offline

aloha wrote:fantomas, poiseh eu posso meter um scroll bar do lado direito e em baixo, a principio com a tela limpa eles nao apareceriam mas vai chegar uma hora q o cara irá precisar rolar esta barra mas como c ela ainda nao está ativa? entendeu? acho q nao da nao :/


Essa de tela ativa de deixou intrigado, o significa isto?

Acabei de executar o Jude e a àrea de edição para diagrama de classes tem justamente as scroll bars para ajudar a deslocar a imagem. O detalhe que reparei foi o box para package, quando eu peguei o canto inferior direito e puxei para esticar o box (streatching) a tela foi se deslocando a medida que ameaçava a ultrapassar seus limites. É este o efeito que vc procura?

Desculpe as perguntas, mas quanto mais clara a ideia mais alta é a possibilidade de alguem aparecer com a resposta.

flws


aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Exatamente isso fantomas!
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Eu pensei no seguinte, coloco um panel e faço dele minha área de edição, q vai ser do tamanho exato do panel (estará dentro dele mas será do mesmo tamanho). Dai com 2 barras de rolagem, como dito pelo fantomas, eu posso redimensionar a área de edição que está dentro do panel e entao quando o tamanho da área de edição ultrapassar o tamanho do panel, a barra de rolagem ativa. ok... mas:

Como faz para acoplar a barra de rolagem num panel e fazer ela entender quando tem q "aparecer"?

Obrigado!
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Faz um teste: coloca um painel dentro de um painel com scrollbar e um botão que aumenta o painel interno (seria legal colocar uma cor no painel interno). Veja o que acontece quando o painel interno aumenta demais, se cria as scrolls... Coisa do tipo.

É fazendo esses exercicios simples que você começa a entender as coisas...

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
aloha
JavaChild

Membro desde: 07/08/2008 15:32:24
Mensagens: 139
Offline

Guilherme Gomes wrote:Faz um teste: coloca um painel dentro de um painel com scrollbar e um botão que aumenta o painel interno (seria legal colocar uma cor no painel interno). Veja o que acontece quando o painel interno aumenta demais, se cria as scrolls... Coisa do tipo.

É fazendo esses exercicios simples que você começa a entender as coisas...


"coloca um painel dentro de um painel com scrollbar " ai que está a dúvida, como põe scrollbar num painel?????????????

Obrigado!
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

JScrollPane ?

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline


Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team