Игнорирование событий мыши Java на компонентах AWT, созданных из легких компонентов - PullRequest
3 голосов
/ 04 августа 2011

У меня есть JFileChooser, который открывается поверх компонента AWT (мы используем GLCanvas для некоторого рендеринга openGL). Если дважды щелкнуть значок в окне выбора файлов, чтобы закрыть его, щелчки мыши передаются в GLCanvas. Я читал, что события мыши на легких компонентах будут передаваться на тяжелые компоненты, но есть ли способ определить, когда это происходит? Двойной щелчок по GLCanvas выполняет другую операцию, которую я бы предпочел не выполнять, когда пользователь просто дважды щелкает, чтобы закрыть диалоговое окно.

1 Ответ

5 голосов
/ 04 августа 2011

Вы можете создать обработчики событий для событий мыши на легких компонентах, а затем ничего не делать внутри них, что должно остановить распространение на более тяжелые компоненты.

Что-то вроде:

    public void mousePressed(MouseEvent e) {}

    public void mouseReleased(MouseEvent e) {}

    public void mouseEntered(MouseEvent e) {}

    public void mouseExited(MouseEvent e) {}

    public void mouseClicked(MouseEvent e) {}
...