【发布时间】:2011-03-17 16:24:49
【问题描述】:
我的应用程序左侧有一个树形控件,右侧有许多表单、选项卡等。当用户按下 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 上发生的操作依赖于当前聚焦的组件?
【问题讨论】:
标签: java swing keyboard-shortcuts shortcut