请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站
开启辅助访问 切换到宽版

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

切换风格 立即注册 找回密码

Java教程网

查看: 44482|回复: 5

.按Esc键隐藏JDialog

[复制链接]

新浪微博达人勋

1074

积分

425

帖子

175

贡献

Rank: 6Rank: 6

积分
1074

灌水之王突出贡献

发表于 2014-9-7 15:26:16 | 显示全部楼层 |阅读模式
代码如下
  1. import java.awt.event.ActionEvent;
  2. import javax.swing.AbstractAction;
  3. import javax.swing.Action;
  4. import javax.swing.InputMap;
  5. import javax.swing.JButton;
  6. import javax.swing.JComponent;
  7. import javax.swing.JDialog;
  8. import javax.swing.JFrame;
  9. import javax.swing.JRootPane;
  10. import javax.swing.KeyStroke;
  11. public class EscapeDialogTest {
  12.         public static void main(String[] a) {
  13.             EscapeDialog dlg = new EscapeDialog();
  14.             dlg.add(new JButton("按Esc键消失(隐藏)"));
  15.             dlg.setSize(300, 100);
  16.             dlg.setVisible(true);
  17.           }
  18. }
  19. class EscapeDialog extends JDialog{
  20.         public EscapeDialog(){
  21.                 super((JFrame)null,false);
  22.         }
  23.         protected JRootPane createRootPane(){
  24.                 JRootPane rootPane = new JRootPane();
  25.                 KeyStroke stroke = KeyStroke.getKeyStroke("ESCAPE");
  26.                 Action actionListener = new AbstractAction() {
  27.                       public void actionPerformed(ActionEvent actionEvent) {
  28.                         System.out.println("关于消失...");
  29.                         setVisible(false);
  30.                       }
  31.                     };
  32.                 InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
  33.                 inputMap.put(stroke, "ESCAPE");
  34.                 rootPane.getActionMap().put("ESCAPE", actionListener);
  35.                 return rootPane;
  36.         }
  37. }
复制代码



新浪微博达人勋

6170

积分

1541

帖子

1543

贡献

Rank: 8Rank: 8

积分
6170
发表于 2014-9-7 15:26:54 | 显示全部楼层
顶起出售广告位

新浪微博达人勋

3697

积分

1907

帖子

426

贡献

Rank: 7Rank: 7Rank: 7

积分
3697

社区QQ达人最佳新人活跃会员热心会员灌水之王优秀版主

发表于 2014-9-7 15:54:58 | 显示全部楼层
沙发~支持楼主拿分走人呵呵,楼下继续!
发表于 2014-9-8 21:54:58 | 显示全部楼层
拿分走人呵呵,楼下继续!
生活要懂得规划

新浪微博达人勋

6583

积分

1645

帖子

1646

贡献

Rank: 8Rank: 8

积分
6583
发表于 2014-9-18 08:44:20 | 显示全部楼层
专业抢沙发的!哈哈

新浪微博达人勋

6782

积分

1694

帖子

1696

贡献

Rank: 8Rank: 8

积分
6782
发表于 2014-11-2 11:19:48 | 显示全部楼层
向楼主学习
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋|手机版|Archiver|Java教程网    

GMT+8, 2019-7-17 20:20 , Processed in 0.421875 second(s), 36 queries .

Powered by Discuz X3.2

© 2001-2013 JAVA教程网

快速回复 返回顶部 返回列表