import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Temp extends Frame implements ActionListener {
Temp() {
super("jfdkslafj");
setVisible(true);
invalidate();
setBounds(10, 10, 1000, 700);
setBackground(Color.white);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//System.exit(0);
setVisible(false);
dispose();// 释放资源
}
});
for (int i = 0; true; i++)
System.out.println(i); } public static void main(String[] args) {
// TODO Auto-generated method stub
new Temp();
} public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
关闭窗口后,依然在循环,各位大虾这是怎么回事呀?但是不能用系统退出,还有什么别的方法吗?

解决方案 »

  1.   

    dispose只是部分的释放资源,其实他只是释放了组件的屏幕资源,数据资源并没有被破坏,所以可能是这个原因后台还在运行
      

  2.   

    系统安全退出系统 使用System.exit(0);
      

  3.   

    dispose()无法终止你那个无限循环,只是释放了GUI的部分线程占据的资源,所以如果退出整个程序用System.exit(),而退出某个Dialog用dispose
      

  4.   

    系统安全退出系统 使用System.exit(0);