Java Swing: Ctrl + F1 не работает глобально, но комбинация клавиш друг друга

У меня есть свинг-интерфейс с панелью с вкладками на севере. На карту ввода добавлено несколько ключевых событий:

InputMap paneInputMap = pane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
paneInputMap.put( KeyStroke.getKeyStroke( KeyEvent.VK_E, KeyEvent.CTRL_MASK ), "finish");
paneInputMap.put( KeyStroke.getKeyStroke( KeyEvent.VK_F1, KeyEvent.CTRL_MASK ), "toggletoolbar");

Если панель с вкладками или другая кнопка на панели инструментов находится в фокусе, Ctrl + F1 не работает. Если сфокусирован другой компонент (например, JTree), Ctrl + F1 выполняет действие.

Проблема в том, что он работает везде, если я изменю ключевой код, например, на VK_F2.

Ключ F1 больше нигде в программе не используется.

Любая идея?

Спасибо, Андре

Редактировать: Полнотекстовый поиск в исходном коде Java дал ответ: ToolTipManager регистрирует ключ Ctrl + F1 для отображения текста всплывающей подсказки при нажатии комбинации клавиш. Таким образом, если кнопка с всплывающей подсказкой находится в фокусе, Ctrl + F1 обрабатывается ToolTipManager. В противном случае называется мое действие.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
2 433
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Может ОС перенаправляет ключ F1? Установите ключевой прослушиватель и посмотрите, какие события обрабатываются.

BTW: Было бы полезно, если бы вы могли отредактировать свой вопрос и вставить некоторый проверяемый код.

Спасибо за Ваш ответ. После долгих поисков java-кода, если нашел ответ (см. Править). Используемая ОС обрабатывает ключевые события только с нажатой клавишей ALT;)

André 26.09.2008 14:47
Ответ принят как подходящий

Чтобы получить ответ, вот решение, скопированное из вашей правки в вопросе. ;-)

The ToolTipManager registeres the Key Ctrl+F1 to display the tooltip text if the key combination is pressed. So if a button with a tooltip is focused, Ctrl+F1 is handled by the ToolTipManager. Otherwise my action is called.

Другие вопросы по теме