为什么这个简单的基于Swing的程序不会终止?

时间:2010-07-16 17:56:12

标签: java swing

为什么这个基于Swing的程序在窗口关闭时不会终止?

import javax.swing.JFrame;
import javax.swing.JOptionPane;

final class App extends JFrame {
    private App() {
        super("App");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JOptionPane.showMessageDialog(this, "App works");
        pack();
    }

    public static void main(final String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new App().setVisible(true);
            }
        });
    }
}

2 个答案:

答案 0 :(得分:3)

首先,它不会在任何人的系统上终止。

原因是因为您调用的JFrame设置为零,内容为零。它很可能隐藏在屏幕的左上角非常小的位置。如果您关闭该框架,您的程序将终止。消息对话框与JFrame无关。

答案 1 :(得分:1)

它确实......在我的机器上发生的事情是打开一个对话框。在该对话框中点击“确定”后,它会打开JFrame。当您关闭JFrame时,它会终止该应用程序。

你可能不想在构造函数中做你正在做的工作......然后JFrame会在对话框之前显示出来。