Очистить все выделения JFrame

Я встроил LWJGL-холст (в JPanel, который находится в JSplitPane) в моем JFrame. И у меня есть JMenuBar. Проблема заключается в том, что LWJGL захватывает фокус и не запускает события качания мыши. Поэтому, если я, например, щелкну на холсте LWJGL, когда всплывает одно из JMenu, свинг проигнорирует (фактически не получит никакого) событие, и всплывающее окно не исчезнет.

введите здесь описание изображения

Я также пытался перепроверить строку меню и весь JFrame, пока ничего не помогло. В моем случае робот не решение - я не хочу его использовать, это вызовет неудобства. Кстати, я пытался сделать что-то вроде этого:

MouseEvent me = new MouseEvent(mainFrame, 0, 0, 0, 0, 0, 1, false);
for (MouseListener m : menuBar.getMouseListeners()) {
    m.mousePressed(me);
}

Но и это не повлияло. Есть ли другие решения? Как я могу очистить все выборы в JFrame, например, когда пользователь сворачивает окно или нажимает клавишу WIN?


person Oldestkon    schedule 25.06.2014    source источник
comment
О, спасибо, Капитан Очевидность. Мне нравится знать, как очищать выборки, а не получать события. Я читал о смешивании LWJGL и Swing, но это не ключ   -  person Oldestkon    schedule 30.06.2014


Ответы (1)


Вы можете получить MouseClick от LWJGL. Теперь вы можете вызывать
MenuSelectionManager.defaultManager().clearSelectedPath()
чтобы закрыть меню.

person Dawnkeeper    schedule 30.06.2014