在ESC上关闭java框架

时间:2013-11-15 15:51:40

标签: java swing

我在几个论坛中找到了这个代码来关闭ESC按键上的一个框架。但是,我很困惑重新考虑在哪里放置这些代码

KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
Action action = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
    jDesktopPane1.getSelectedFrame().dispose();
   }
};
jDesktopPane1.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
escape,"escape");
jDesktopPane1.getActionMap().put("escape", action);

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

无论您在何处初始化jDesktopPane1,都可以在此之后将其绑定并将其绑定到它。如果您的窗格有init()方法,请将其放在那里以便绑定。

答案 1 :(得分:-2)

我们必须在java组件中添加一个关键监听器,如frame。或者在你的情况下jdesktoppane。 对于示例框架的构造函数,

this.addKeyAdapter(
    new KeyAdapter(){
        public void keyPressed(KeyEvent e){
            if(e.getKeyChar()==VK_ESCAPE)
                this.dispose();
        }
});