Есть ли элемент качания, который имеет 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, который имеет приоритет над моим ускорителем?
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