Слушатель фрейма на тильду (~) - 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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы