Мое приложение имеет дерево управления слева и ряд форм, вкладок и т. Д. Справа. Когда пользователь нажимает Ctrl + F , под деревом слева появляется панель поиска, так что пользователь может искать содержимое дерева.
Это делается с помощью ускорителя меню.
Однако, когда справа открывается определенная вкладка, я хочу, чтобы Ctrl + F открыл панель поиска на этой вкладке, чтобы выполнить поиск внутри содержимого вкладки.
Я определил привязку клавиш для этой вкладки:
tab.getInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_MASK), "showSearch");
tab.getActionMap().put("showSearch", showSearchAction);
showSearchAction
выше открывает панель поиска во вкладке.
Это не работает. Даже когда вкладка находится в фокусе, Ctrl + F по-прежнему открывает панель поиска под деревом.
Как сделать так, чтобы действие, которое происходит на Ctrl + F , зависело от выбранного в данный момент компонента?