Jxmaps Как я могу добавить ContextMenu в маркер? - PullRequest
0 голосов
/ 13 декабря 2018

Я пытался добавить контекстное меню к маркеру, но не могу понять, как отобразить контекстное меню.

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

Я пытался разыграть маркер как Узел, но это не сработало, помогите?

1 Ответ

0 голосов
/ 17 декабря 2018

Чтобы отобразить всплывающее меню на 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);
            }
        });
    }
});
...