2013 年 2 月 2 日编辑
在您的一些回答和我找到的简单 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)
最佳答案
For some reason, I can't close it and have to use task manager.
使用 SwingUtilies.invokeLater()
创建 GUI。
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
关于java - 我的 Swing 应用程序有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14433302/