为JFrame和JDialog等窗口部件添加缺省按钮和响应Escape键盘事件
来源:互联网 发布:奇葩说黄执中 知乎 编辑:程序博客网 时间:2024/04/29 09:51
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);
}
}
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);
}
}
- 为JFrame和JDialog等窗口部件添加缺省按钮和响应Escape键盘事件
- JFrame和JDialog等窗口添加键盘事件
- JWindow 、JFrame 和 JDialog
- JDialog 和 主JFrame之间
- JFrame和JDialog屏幕点击
- iOS开发- runtime基本用法解析和用runtime给键盘添加工具栏和按钮响应事件
- 分别使用simpleAdapter和baseAdapter为ListView的Item添加按钮响应事件
- 分别使用simpleAdapter和baseAdapter为ListView的Item添加按钮响应事件
- 按钮Button的添加 和事件的响应
- 用Swing开发GUI程序(二)JFrame和JDialog
- 键盘响应页面按钮事件
- JTable 为单元格添加按钮效果和事件效果
- JTable 为单元格添加按钮效果和事件效果
- JTable 为单元格添加按钮效果和事件效果
- JFrame JDialog
- 为窗口添加鼠标HOVER和LEAVE事件
- javascript 中响应鼠标和键盘事件
- FLEX actionscript响应鼠标和键盘事件
- 电子商务系统的建设方式及技术选择
- 盈利模式
- 养龟小记--小家伙不能拿在手上玩了
- xml转换为树
- First
- 为JFrame和JDialog等窗口部件添加缺省按钮和响应Escape键盘事件
- 图算法《c++算法》(二)
- 一个学习数据库知识的网站
- 别人笑我太疯癫,我笑他人看不穿。
- Think in java 答案_Chapter 7(-)
- 常量综述(一)
- Think in java 答案_Chapter 7(二)
- 梦想是否要继续
- Linux 2.6.19.x 内核编译配置选项简介