如何正确关闭GUI图形用户界面程序?我们先来看一个最简单的例程。 JFrame是一个框架窗体(顶层的容器组件),例程CenterLocationFrame.java先自定义了一个继承自JFrame的框架窗口,然后设置窗口的首选大小,再设置框架窗口显示于屏幕中间。JFrame默认大小其长和宽都是0,如果不设置窗口的首选大小或窗口的size,将只显示窗口标题栏。此框架窗口自动包含窗口最大化、最小化和窗口关闭的功能。框架窗口默认是不可见的,调用setVisible(true)方法才能显示窗口。 下面这行代码定义了窗体的默认关闭操作,其中EXIT_ON_CLOSE是JFrame中定义的常量,表示退出并关闭窗体。 setDefaultCloseOperation(EXIT_ON_CLOSE); 假如没有这行代码,程序看上去也很正常,而且点击窗口右上的窗口关闭按钮,程序窗口也会关闭。但是实质上程序却没有正常退出,只是隐藏了窗口,还在后台执行,相关资源也未释放。
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;
public class CenterLocationFrame extends JFrame {
public CenterLocationFrame(String title,int w,int h) {
setTitle(title);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();//屏幕范围
int screenWidth