JMapViewer добавить слушателя мыши в MapMarkerDot

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

Я реализовал mouseListener, но я не могу добавить слушателя. Проблема в том, что я не нашел способ, которым MapMarker будет добавлять addMouseListener, из-за того, что ни одна из иерархий не реализует JPanel.

Любая помощь приветствуется

1 ответ

Решение

Как отмечено здесь, по умолчанию JMapViewer конструктор использует DefaultMapController, "который реализует перемещение карты нажатием правой кнопки мыши и масштабирование двойным щелчком мыши или колесом мыши". Чтобы увидеть координаты карты, продлите DefaultMapControllerпереопределить mouseClicked() и использовать один из зрителей getPosition() методы. Вы можете использовать свой контроллер, как показано в комментариях в строке 65 Demo.java, r30377.

 new DefaultMapController(map){

    @Override
    public void mouseClicked(MouseEvent e) {
        System.out.println(map.getPosition(e.getPoint()));
    }
};
Другие вопросы по тегам