import java.awt.*;
import java.awt.event.*;class Dwindow extends Frame {
private static final long serialVersionUID = -7808262042312125177L; Dwindow(String s) {
super(s);
setBounds(100, 100, 300, 300);
setVisible(true);
validate();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0);
}
});
}
}public class Example8_1 {
public static void main(String args[]) {
new Dwindow("带对话框的窗口");
}
}

解决方案 »

  1.   

    没有意义:
    setVisible(false);是设值窗体的可见状态为隐藏。
    System.exit(0);正常退出,退出了隐藏属于多此一举了。
    Swing更强大。都用JFrame。很少有人在用Frame咯。JFrame封装了方法
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      

  2.   

    楼上说得没有错!
    System.exit(0);
    将该运行的资源都关闭了。
      

  3.   

    有个新问题:]
    为什么super(s)调用的是public Frame(GraphicsConfiguration gc),而不是public Frame(String title)?
      

  4.   

    楼主、那是不可能的。
    你传进的是String,而不是GraphicsConfiguration。
    你发问题的那里super(s),调用的必定是public Frame(String title)。
      

  5.   

    楼主的代码结构有问题。一般setVisible(boolean) 方法是放在代码最后一行的。注册监听事件在此之前写。System.exit(0); 程序退出了。