| Autor |
Mensagem |
|
|
Olá,
Alguém com experiência em interface gráfica talvez possa me ajudar.
Utilizo o AffineTransform do Graphics do meu JPanel para realizar o zoom dos componentes plotados.
Porém alguns componentes não recebem o zoom. Até aí tudo bem.
O problema é no posicionamento desses componentes que permanecem sem aumentar o zoom.
Não sei como atualizá-los para a posição correta. Acredito que haja algum cálculo a ser feito, com matriz, ou algo assim.
Tentei várias coisas com o método translate, pegando posicão depois do zoom e subtraindo da posição antes do zoom, mas até agora nada.
Valeu.
|
 |
|
|
Bom, resumindo o que eu to tentando fazer é o seguinte. Aumentar o zoom dos polígonos pintados no JPanel (drawPolygon) e manter os labels (veículos), adicionados ao JPanel, do MESMO TAMANHO.
Pra isso em cada repaint eu tenho que modificar os valores de scale do graphics separadamente.
Mas hoje eu faço os labels(veiculos) aparecerem por cima do mapa apenas usando o super.paintComponent(g).
Ou seja, quando eu aplico o zoom, o label cresce junto, na mesma proporção dos polígonos.
Alguma idéia de como faço isso?
Valeu.
|
 |
|
|
Olá,
Hoje tenho um sistema onde utilizo Graphics2D para plotar polígonos (mapa) em um panel, sobreescrevendo o método paintComponent.
(Inicio do problema - http://www.guj.com.br/posts/list/216423.java)
No meu sistema tem um objeto chamado veiculoGrafico, que extend de JLabel. Este é plotado por cima do mapa utilizando panelMapa.add(veiculo).
O problema é que estou trabalhando com zoom agora, e preciso que o mapa e o veiculoGrafico sejam independentes. Ou seja,
no método paintComponent que sobreescrevo, terei de desenhar o mapa e posteriormente os veiculos (alterando seu affineTransform diferente do AffineTransform do mapa) . O que
não estou conseguindo é exatamente isso, pois até então o componente cuidava de pintar o label adicionado, sozinho.
O que estou pensando é em ter uma lista de veiculoGrafico e depois plotar um por um. Mas como faço isso?
Pensei em pegar o image do label plotar ele, funcionaria, mas preciso que o label esteja plotado, porque nela a complexidades de piscar e etc.
Aguardo sugestões.
Valeu.
|
 |
|
|
Consegui... tive que calcular o translate como se o objeto sem zoom tivesse com zoom. Dae funcionou.
Valeu pelas dicas.
Encontrei bastante material no pontov.com.br também, que ajudaram a entender alguns conceitos.
Até mais.
|
 |
|
|
Era isso ae mesmo cara.
Consegui.
Mas estou empacado com a atualização do posicionamento (translate) do objeto que não recebeu o zoom.
Para pegar o deslocamento correto, eu uso o seguinte código, após aplicar o zoom. Mas ele não tá mantendo a proporção correta.
Tem algum conceito que não estou entendendo 100%. A coordenada do "mundo" não deveria ser a mesma para os objetos com e sem zoom?
Não sei se consegui deixar claro o meu problema.
Valeu!
|
 |
|
|
Foi mal.. não costumo upar, mas a pressa é foda.
Se eu não tivesse upado você não teria visto a pergunta rsrs..
Então, eu pensei nisso mesmo, até fiz um exemplo, mas não funcionou.
Vou refazer com um pouco mais de critério e vamos ver no que dá.
Valeu.
|
 |
|
|
Alguém?
Valeu!
|
 |
|
|
Olá,
Na minha aplicacação eu tenho um JPanel onde ploto alguns polígonos. Esse é o mapa.
Sobre ele ploto (add) label com imagens.
A última característica que adicionei foi o zoom. Fiz isso trabalhando com o AffineTransform do Graphics do JPanel.
Quando dou o zoom, todos os elementos plotados sobre o mapa aumentam, o que era esperado. Mas preciso
que apenas o fundo aumente, os polígonos, sem que a imagem aumente também. Esta tem que apenas atualizar o posicionamento relativo ao JPanel.
Acredito que eu tenha que implementar algum tipo de arquitetura com layer, um JPanel sobre o outro, ou sei lá.
Alguém tem experiência com esse tipo de desenvolvimento e pode dar uma luz?
Até mais.
Valeu!
|
 |
|
|
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.
|
 |
|
|
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.
|
 |
|
|
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!
|
 |
|
|
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.
|
 |
|
|
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.
|
 |
|
|
É.. acredito que ele faça isso mesmo.
Mas me decepcionou um pouco. Ele deveria manter as referências.
No cliente tive que repreencher a lista "geral", para atualizar a referência.
Muito estranho.
Queria encontrar alguma explicação pra isso.
Valeu
|
 |
|
|
Boa tarde!
Estou enfrentando um problema com RMI que é o seguinte:
Tenho um objetoA que contém uma lista de objetoB e este, por sua vez, contém uma lista de objetoC.
Dentro do objetoA contém, também, uma lista de objetoC. Usa-se essa lista para generalizar os objetoC de cada objetoB.
Quando eu altero algum valor do objetoC, deve-se alterar nas duas listas, afinal to usando a referência.
No servidor faço isso e funciona perfeitamente.
Mas quando passo para o cliente, perde as referências. Ou seja, quando mudo os valores de um objetoC dentro de uma das listas,
o outro objetoC da outra lista não altera. Como se fossem dois objetos diferentes.
Alguém sabe se por debaixo dos panos o RMI cria objetos diferentes?
Se não fui claro, explico novamente.
Valeu.
|
 |
|
|