45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:怎么样为JFrame和JDialog等窗口部件添加缺省按钮响应Escape键盘事件?

怎么样为JFrame和JDialog等窗口部件添加缺省按钮响应Escape键盘事件?

2016-09-05 06:54:34 来源:www.45fan.com 【

怎么样为JFrame和JDialog等窗口部件添加缺省按钮响应Escape键盘事件?

JFrame和JDialog都实现了RootPaneContainer接口,可以通过取得RootPane来实现。

public class RootPaneHelper {

private RootPaneHelper() {

}

/**

*为RootPaneContainer组件设置缺省按钮,

*并添加Escape事件响应

*/

public static void decorate(RootPaneContainer rpc,JButton defaultButton,Action escapeListener){

JRootPane rp=rpc.getRootPane();

rp.setDefaultButton(defaultButton);

KeyStroke stroke = KeyStroke.getKeyStroke("ESCAPE");

InputMap inputMap = rp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);

inputMap.put(stroke, "ESCAPE");

rp.getActionMap().put("ESCAPE", escapeListener);

}

/**

*为RootPaneContainer组件设置缺省按钮,

*并添加Escape的默认事件响应:关闭窗口

*/

public static void decorate(final RootPaneContainer rpc,JButton defaultButton){

Action action = new AbstractAction() {

public void actionPerformed(ActionEvent actionEvent) {

((Component)rpc).setVisible(false);

}

};

decorate(rpc,defaultButton,action);

}

}
 

本文地址:http://www.45fan.com/a/question/72465.html
Tags: 窗口 JFrame JDialog
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部