2014-07-05 121 views
3

我想添加一个鼠标监听器到MapMarker,这样当鼠标悬停MapMarker时,我可以对事件做出反应。JMapViewer添加鼠标监听器到MapMarkerDot

我实现了mouseListener,但我无法真正添加一个侦听器。 问题是,我没有找到MapMarker将addMouseListener的方式,因为非层次结构实现JPanel。

任何帮助理解

+0

阅读你在那里发布的答案,它是重复的。谢谢! –

+0

您可以添加它作为答案,我会批准它。 –

回答

3

如上所述here,默认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())); 
    } 
};