我正在尝试将鼠标侦听器添加到 MapMarker,以便当鼠标悬停 MapMarker 时,我可以对事件做出反应。
我实现了mouseListener,但我不能真正添加一个监听器。问题是我没有找到 MapMarker 将 addMouseListener 的方法,因为没有层次结构实现 JPanel。
任何帮助表示赞赏
我正在尝试将鼠标侦听器添加到 MapMarker,以便当鼠标悬停 MapMarker 时,我可以对事件做出反应。
我实现了mouseListener,但我不能真正添加一个监听器。问题是我没有找到 MapMarker 将 addMouseListener 的方法,因为没有层次结构实现 JPanel。
任何帮助表示赞赏
正如这里所指出的,默认JMapViewer
构造函数使用一个DefaultMapController
,“它实现了按鼠标右键移动地图并通过双击或鼠标滚轮进行缩放。” 要查看地图坐标,请扩展DefaultMapController
、覆盖mouseClicked()
并使用查看器的getPosition()
方法之一。您可以使用您的控制器,如Demo.java
r30377 的第 65 行的注释中所示。
new DefaultMapController(map){
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(map.getPosition(e.getPoint()));
}
};