2015-08-19 2 views
0

Я работаю над приложением java swing, управляемым меню. В нем от 4 до 5 меню имеют 4 или более пунктов меню. Я определил ярлыки для всего пункта меню, используя JMenuBar#setKeyAccelerator(KeyStroke key). Но когда я определяю spacebar как ярлык, а затем нажмите space, он запускает событие для моего первого JMenuItem или ранее выбранного пункта меню. Вот мой фрагмент кода:Пробел-ярлык для JMenuItem

JMenuItem item = new JMenuItem("Do Something"); 
item.setKeyAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0)); 

Как добавить пробел в элемент меню так, чтобы он работал нормально.

+0

В 'setKeyAccelerator (...)' метод hasn давно не знаю. Я бы посоветовал вам получить более современный JDK. Любой, который я тестировал с помощью VK_SPACE на текущем JDK, отлично работает. Я просто загрузил код «MenuLookDemo.java» из учебника Swing в [Как использовать меню] (http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html) и сменил один из ускорителей , Если это не работает для вас, возможно, у вас есть несколько пунктов меню, используя пробел в качестве ускорителя или, возможно, это проблема JDK. Не могу определить, основываясь на двух строках кода. – camickr

+0

@camickr Я использую обновление Java версии 7 45. –

+0

Ну, как я уже сказал, посмотрите учебник для рабочих примеров. Мы не можем помочь вам на основе двух строк кода. – camickr

ответ

0

Я запятнать мою проблему, я добавил панель инструментов с кнопкой, и моя кнопка автоматически фокусируются, поэтому, когда я нажимаю пробел, оно прижимает кнопку на JToolBar