编辑2/2/2013

借助您的一些答案和我找到的简单的Swing应用程序指南,我取得了一些进步,现在将其全部放在一个类中。但是,我仍然无法关闭它,我不得不按下一个按钮来完成它,因为必须拉起任务管理器实在太烦人了。工具提示也不起作用。我不知道这是否重要,但是我正在Eclipse中进行。

import javax.swing.SwingUtilities;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Thing extends JFrame
{
    private static final long serialVersionUID = 1L;

    public Thing()
    {
        setTitle("Thing");
        setSize(1024, 768);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);

        JPanel panel = new JPanel();
        getContentPane().add(panel);
        panel.setLayout(null);
        panel.setToolTipText("A panel container");

        JButton quit = new JButton("Quit");
        quit.setBounds(50, 60, 80, 30);
        quit.setToolTipText("A button component");
        quit.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent event)
            {
                System.exit(0);
            }
        });
        panel.add(quit);
    }

    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                Thing thing = new Thing();
                thing.setVisible(true);
            }
        });
    }
}


这是我尝试用X闭合时给出的错误。(闭合可以通过按钮正常进行)

java.lang.NoClassDefFoundError: sun/awt/TimedWindowEvent
    at sun.awt.windows.WToolkit.eventLoop(Native Method)
    at sun.awt.windows.WToolkit.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

最佳答案

由于某些原因,我无法关闭它,而不得不使用任务管理器。


使用SwingUtilies.invokeLater()创建GUI。

http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html

09-27 00:51