JPanel com zoom  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Jean_Utf
Thread.start()

Membro desde: 26/03/2008 19:21:15
Mensagens: 46
Offline

Boa tarde,

Existe algum componente java que tenha as características de um panel que plota mapa?
Por exemplo, zoom in e out, e movimentar o mapa com um "clique + segura + arrasta"

O Mapa que ploto é utilizando Java2d (drawPolygon).


To pesquisando sobre swingx e swingx ws, lá tem algo sobre mapa, mas por enquanto só sei como pegar da web, tipo google maps, passando uma url.


Valeu.
Marky.Vasconcelos
Moderador
[Avatar]

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

Bem, não sei anda pronto, mas voce pode fazer isso facilmente, o zoom aplicando um affinetransform ao Graphics2D, e o arrastar e soltar voce deve modificar as coordenadas de pintura de acordo com o drag do mouse.

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]
Jean_Utf
Thread.start()

Membro desde: 26/03/2008 19:21:15
Mensagens: 46
Offline

Mas com o zoom in, alguns polígonos "sumirão", como num mapa qualquer.
Como se eu tivesse um panel gigante, e só uma parte deste aparecesse. Quando eu arrastasse, o panel se moveria.

Mas com um panel comum não sei se isso é factível.

Acredito que já haja algo pronto... onde eu só passe meu array de coordenadas, e ele já plote, com essas características de mapa mesmo.

Valeu.
Marky.Vasconcelos
Moderador
[Avatar]

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

Com um JPanel não tem isso não, eu não disse que isso seria simples, disse que seria facil.

Voce só tem que modelar tudo isso corretamente.

Talvez uma API de grafos possa te ajudar, não tenho certeza.

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]
Jean_Utf
Thread.start()

Membro desde: 26/03/2008 19:21:15
Mensagens: 46
Offline

Grafos?

Acho que não. Só preciso de um botão de zoom em um panel com polígonos plotados.
E que eu consiga movimentar esse mapa.

Mas tá tenso achar. Tenho certeza que já deve existir isso em algum lugar.

Valeu!
Marky.Vasconcelos
Moderador
[Avatar]

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

Eu já implementei isso em um MapBuilder(para jogos), e realmente voce tem que fazer o que eu disse, no arrastar do mouse, movimente todos seus pontos naquele sentido.

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]
Jean_Utf
Thread.start()

Membro desde: 26/03/2008 19:21:15
Mensagens: 46
Offline

Consegui fazer utilizando um JPanel.

Usei o Graphics2D para pintar os polígonos (como já era antes) e os métodos scale, translate e createInverse do AffineTransform.

Scale para o zoom com o scroll do mouse e translate para o posicionamento (clicar e arrastar).
Para o primeiro usei o evento mouseWheelMoved, e o segundo mouseDragged, para fazer a lógica de atualização.

Valeu.

Até mais.
Marky.Vasconcelos
Moderador
[Avatar]

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

Era isso mesmo que eu imaginava, parabéns!

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]
Jean_Utf
Thread.start()

Membro desde: 26/03/2008 19:21:15
Mensagens: 46
Offline

Valeu.

Achei uma api que faz isso também. OpenMap.
Tem todos os componentes para trabalhar com mapas, prontos. Show de bola.
Tem até um ZoomPanel... haha.

Mas não posso dizer se é bom ou não porque não usei. Mas me parece completão.

Mas vou agregar no meu sistema apenas no futuro.

Valeu ae.. até mais.
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team