Есть ли элемент качания, который имеет F6 в качестве ускорителя по умолчанию?



У меня есть приложение с вкладками и различными компонентами в нем. Я установил MenuItem как действие с ускорителем:



private final Action focusDefaultCommandsAction = new AbstractAction()
{
{
putValue(NAME, "Fokusiere Kommandoliste");
putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0));
}

@Override
public void actionPerformed(final ActionEvent e)
{
invokeShowCommandsList();
}
};


Я знаю, что есть одна вкладка, где акселератор для клавиши F6 не работает. ключ F7 работает.



Может ли быть ускоритель по умолчанию на элементе Swing, который имеет приоритет над моим ускорителем?

521   1  

1 ответ:

Вы можете посмотреть это в BasicLookAndFeel.java (или аналогичный класс В зависимости от используемого L&F), поиск по F6.

Похоже, что F6 используется JSplitPane для переключения фокуса между содержимым и разделителями. Чтобы удалить его, вы можете использовать что-то вроде (не проверено, я думаю, что удаление фактического действия сложнее, потому что оно может быть в родительской входной карте):

splitPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
  .put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), "none");

Comments

    Ничего не найдено.