Jxmaps如何将ContextMenu添加到标记?

时间:2018-12-13 19:25:49

标签: java javafx jxmaps

我一直在尝试向标记添加上下文菜单,但是我不知道如何使上下文菜单出现。

marker.addEventListener("rightclick", new MapMouseEvent() {
    @Override
    public void onEvent(MouseEvent event) {
        contextMenu.show(
            marker, marker.getPosition().getLat(), 
            marker.getPosition().getLng()
        );
    }
});

我试图将标记投射为Node,但这没用,有帮助吗?

1 个答案:

答案 0 :(得分:0)

要在JxMaps上显示弹出菜单,您必须执行以下操作:

  1. 将JxMaps切换到LIGHTWEIGHT模式()。在HEAVYWEIGHT模式下,可以在地图下方显示弹出菜单。
  2. 添加显示PopupMenu的代码以“单击”事件处理程序。

请查看以下示例:

JPopupMenu popup = new JPopupMenu();
popup.add(new JMenuItem("Test"));

MapView mapView = new MapView(new MapViewOptions(MapComponentType.LIGHTWEIGHT));
mapView.setOnMapReadyHandler(new MapReadyHandler() {
    @Override
    public void onMapReady(MapStatus status) {
        final Map map = mapView.getMap();
        map.setCenter(new LatLng(35.91466, 10.312499));
        map.setZoom(2.0);
        map.addEventListener("rightclick", new MapEvent() {
            @Override
            public void onEvent() {
                java.awt.Point pos = MouseInfo.getPointerInfo().getLocation();
                SwingUtilities.convertPointFromScreen(pos, mapView);
                popup.show(mapView, pos.x, pos.y);
            }
        });
    }
});