如何只关闭一个awt框架而不关闭其他框架?

how to close only one awt Frame without closing other?

当我单击一个框架的关闭 (X) 按钮时,它会关闭所有打开的框架。

我使用了以下代码来关闭框架

    Frame f2 = new Frame();
        f2.setVisible(true);
        f2.setLayout(null);
        f2.setSize(500,500);
        f2.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent w)
            {
            System.exit(0);
            }       
        });

System.exit(0)关闭整个应用程序。

如何只关闭一个Frame?

System.exit(); 导致 Java VM 完全终止。

所以你需要使用JFrame.dispose();导致JFramewindow被操作系统销毁和清理

Frame f2 = new Frame();
    f2.setVisible(true);
    f2.setLayout(null);
    f2.setSize(500,500);
    f2.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent w)
        {
        f2.dispose();
        }       
    });

来自这个的解释post

你也可以使用 dispose():

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Work {

    public static void main(String[] args) {
        Frame f2 = new Frame();
        f2.setVisible(true);
        f2.setLayout(null);
        f2.setSize(500, 500);
        f2.
        f2.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent w) {
                w.getWindow().dispose();
            }
        });
    }
}

查看更多here.