由于看似没有理由,每当我尝试使用Swing运行任何东西时,Java都会崩溃。例如,如果我运行HelloWorld程序,只是为了测试一些东西,那么它运行得非常好。但是如果我尝试使用JFrame运行程序,无论多么简单(我甚至在Java&#39的网站上尝试了JFrame演示示例,这样我就可以得到一个简单的JFrame程序),我总是得到&# 34; Java SE平台二进制文件已停止工作"错误。
这可能与图形驱动程序更新有关吗?我想不到,但你永远不知道。
这是我试过的演示:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) {
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
答案 0 :(得分:3)
在处理来自SwingUtilities.invokeLater()
的Swing或来自非EDT的任何线程时,您应始终使用main()
。
https://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
答案 1 :(得分:0)
我仍然不允许发表评论。这就是为什么我回答简单的事情。