JMapViewer, MouseListener chamado 2 vezes
Trabalhando com o JMapViewer, um comportamento estranho do componente foi reconhecido. Estou usando o DefaultMapController para obter a posição do mapa (lat, lon).
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import org.openstreetmap.gui.jmapviewer.DefaultMapController;
import org.openstreetmap.gui.jmapviewer.JMapViewer;
public class Test extends JMapViewer{
public Test()
{
addMouseListener(new DefaultMapController(this) {
public void mouseClicked(MouseEvent e){
Point start = e.getPoint();
System.out.println(e.getPoint());
}
});
}
protected void paintComponent(Graphics g){super.paintComponent(g);}
public static void main (String [] args){
JFrame jf = new JFrame();
jf.setSize(800, 600);
Test t= new Test();
jf.add(t);
jf.setVisible(true);
}
}
Executando o código, depois que o botão esquerdo do mouse é pressionado, o método mouseClicked () é chamado várias vezes (2x). Após a substituição
addMouseListener(new DefaultMapController(this) {
com
addMouseListener(new MouseAdapter() {
o código funciona corretamente, o método é chamado apenas 1x. Onde está o problema? É um bug dentro da biblioteca ou a sintaxe está errada ou não é segura? Como evitar esse problema? Obrigado pela ajuda.