A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© せR3n、何必装纯 黑马帝   /  2011-11-24 17:00  /  1537 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class JFrame {
     
     public static void main(String[] args) {
        Frame f = new Frame();
        f.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent arg0){
                      System.exit(0);
            }
        });
        f.setSize(300,300);
        f.setVisible(true);
     }
}

         以上是我测试监视器注册与否功能的不同,如果按以上代码运行,程序正常,窗口打开时候也能关闭,
但是如果不要System.exit()这一行代码,之后程序能运行,但是弹出来的窗口怎么也关闭不了,请问各位有
没有不注册监视器但可以关闭这个窗口的方法(前提是不关闭编译器)?

4 个回复

正序浏览
本帖最后由 hou3172568 于 2011-11-24 22:35 编辑

你使用f.setDefaultCloseOperation(EXIT_ON_CLOSE);试试就可以了。
回复 使用道具 举报
JFrame与 Frame 不同,当用户试图关闭窗口时,JFrame 知道如何进行响应。用户关闭窗口时,默认的行为只是简单地隐藏 JFrame。要更改默认的行为,可调用方法 setDefaultCloseOperation(int)。要使 JFrame 的行为与 Frame 实例相同,请使用 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)。

下面代码可以试试
JFrame f =new JFrame();
f.setSize(500,600);
f.setLocation(300,300);
f.setVisible(true);
回复 使用道具 举报
刘旭 黑马帝 2011-11-24 20:34:32
藤椅
没有了吧!
回复 使用道具 举报
强子 黑马帝 2011-11-24 20:33:03
沙发
我也不知道是否可以不注册监视器
但是 窗口是有javaw来运行的
而  System.exit(0)正是用来关闭javaw的
如果在某个其他事件内调用这句话是够会达到同样的效果呢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马