2015-01-26 3 views
2

У меня есть меню с пунктами меню. Я программно выбрать меню и расширить его:Как перемещаться по пунктам меню со стрелками (вверх/вниз)?

// Create new menu with menu items 
JMenu jMenuFile = new JMenu("File"); 
JMenuItem jMenuItemNew = new JMenuItem("New"); 
jMenuFile.add(jMenuItemNew); 
JMenuItem jMenuItemOpen = new JMenuItem("Open"); 
menuFile.add(jMenuItemOpen); 

// Select menu and expand it 
jMenuFile.setSelected(true);     
jMenuFile.setPopupMenuVisible(true); 

Этот код работает отлично, но я не могу перемещаться вручную через пункты меню с помощью клавиш со стрелками (вверх/вниз). Как это можно достичь?

Примечание 1: Если я установил мнемонический ключ (jMenuFile.setMnemonic ('D')), я получаю фокус, и я могу использовать клавиши со стрелками. Однако я не хочу использовать мнемонические ключи.

Примечание 2: jMenuFile.requestFocus() также не работает.

+0

Вы забыли вызвать show/setVisible для контейнера (если (родительский экземпляр JPopupMenu) {), перед тем, что нужно проверить, если isShowing, thats it, thare являются двумя слушателями, вы можете использовать это как уведомитель для целей тестирования – mKorbel

ответ

1

Я нашел решение:

jMenuDatei.doClick(); 

Это имитирует нажатие на меню. Поэтому он выбирается, и я могу перемещаться по пунктам меню с помощью клавиш со стрелками.

0

Думаю, вам сначала нужно установить mnemonic key. С помощью клавиши «Alt + мнемоника» соответствующее меню должно быть в фокусе. Думаю, тогда также можно будет использовать клавиши со стрелками (не уверен).

+0

Когда меню открыто (в фокусе), вы можете использовать стрелки для навигации, это правда. – BluesSolo

Смежные вопросы