黑马程序员技术交流社区

标题: 网络编程中的小麻烦 [打印本页]

作者: せR3n、何必装纯    时间: 2011-11-24 17:00
标题: 网络编程中的小麻烦
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()这一行代码,之后程序能运行,但是弹出来的窗口怎么也关闭不了,请问各位有
没有不注册监视器但可以关闭这个窗口的方法(前提是不关闭编译器)?
作者: 强子    时间: 2011-11-24 20:33
我也不知道是否可以不注册监视器
但是 窗口是有javaw来运行的
而  System.exit(0)正是用来关闭javaw的
如果在某个其他事件内调用这句话是够会达到同样的效果呢。
作者: 刘旭    时间: 2011-11-24 20:34
没有了吧!
作者: 李龙龙    时间: 2011-11-24 22:27
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 22:33
本帖最后由 hou3172568 于 2011-11-24 22:35 编辑

你使用f.setDefaultCloseOperation(EXIT_ON_CLOSE);试试就可以了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2