Слушатель фрейма на тильду (~) - Java
Формулировка задачи:
Как-то я не могу сделать слушатель на тильду.. -_-
Эта строка не работает...
if (key.getKeyCode() == KeyEvent.VK_DEAD_TILDE)
И почему вообще мертвая тильда?.. 0_о
Оказывается, у меня вообще не вешается слушатель на фрейм...
Почему строка getContentPane().addKeyListener(new KeyListener() - не работает? При появлении фрейма - очевидно, слушатель не активен. Номер ~ я вроде нашел уже..
Листинг программы
- getContentPane().addKeyListener(new KeyListener()
- {
- @Override
- public void keyPressed(KeyEvent key)
- {
- System.out.println("Код => " + key.getKeyCode());
- if (key.getKeyCode() == 192)
- .....
Нет никаких сообщений в консоли! Все мертвое..
Блин, да что за... Пытался сделать невидимую кнопку debug и на нее поставить горячую клавишу для слушателя - снова ноль эмоций!
debug.setMnemonic(KeyEvent.VK_F11); - при нажатии на F11 ничего не происходит!
НАшел в инете пример, но совершенно не понимаю, что тут вообще происходит? Я не правильно понимаю назначение мнемоники?..
Листинг программы
- // create an Action doing what you want
- Action action = new AbstractAction("doSomething") {
- @Override
- public void actionPerformed(ActionEvent e) {
- System.out.println("triggered the action");
- }
- };
- // configure the Action with the accelerator (aka: short cut)
- action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("control S"));
- // create a button, configured with the Action
- JButton toolBarButton = new JButton(action);
- // manually register the accelerator in the button's component input map
- toolBarButton.getActionMap().put("myAction", action);
- toolBarButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
- (KeyStroke) action.getValue(Action.ACCELERATOR_KEY), "myAction");
черт побери, с этим кодом кнопка не работает, только закрывает появляющйся фрем с клавиш, а клавиши не закрывают, только открывают его! А если кнопку сделать невидимой, вообще не работает.... уф!.....
В общем, я провозился вечер и так и не смог толком сделать простую гор.клавину в Фрейме. Как минимум из-за огрничения на фокус окна для работы клавиши! Кошмар.
КейЛистенеры в Фреме не работают, других для перехвата клавиш я не нашел. В Яве все на столько плохо?!
Решение задачи: «Слушатель фрейма на тильду (~)»
textual
Листинг программы
- System.out.println(getConentPane() instanceof JFrame)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д