JMapViewerを使用すると、コンポーネントの異常な動作が認識されました。私はマップの位置(緯度、経度)を取得するDefaultMapControllerを使用しています。JMapViewer、MouseListenerが2回呼び出されました
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);
}
}
コードを実行すると、マウスの左ボタンを押した後、メソッドmouseClicked()が複数回呼び出されます(2倍)。
addMouseListener(new MouseAdapter() {
コードが正しく機能して交換
addMouseListener(new DefaultMapController(this) {
した後、この方法は、唯一の1x呼び出されます。問題はどこだ?それはライブラリ内のバグですか?構文が間違っているか危険ですか?この問題を回避するには?ご協力いただきありがとうございます。
@ trashgod:ご説明いただきありがとうございます。いつものように優秀:-) – justik