JInternalFrame和Keybinding

时间:2009-11-05 19:53:01

标签: java swing user-interface jinternalframe

如何将功能键(F11等)绑定到JInternalFrame,以便激活特定操作。

我尝试了以下

  this.getInputMap().put(KeyStroke.getKeyStroke("F11"), new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
               System.out.println("Called");
            }
        });

但它从未被调用过? 或者,请建议如何使用功能键激活JInternalFrame中的按钮。

由于 Azlam

2 个答案:

答案 0 :(得分:1)

好吧,焦点永远不在内部框架本身,焦点在于内部框架上的组件。

所以你应该使用

添加绑定

internalFrame.getRootPane()......

您可能还需要使用

"WHEN_ANCESTOR_OF_FOCUSED_COMPONENT" 

输入地图。

Key Bindings上的博客条目更详细地解释了这一点。

答案 1 :(得分:0)

select distinct v.e from jobmovement jm cross apply (values (jm.e1l), (jm.e2l), (jm.e1s), (jm.e2s)) v(e); JInternalFrameKeyListeners方面遇到了麻烦。要解决此问题,请尝试使用KeyBindings代替JDialog