为什么即使是最简单的Swing程序,Java也会崩溃?

时间:2015-09-12 04:39:29

标签: java swing crash jframe

由于看似没有理由,每当我尝试使用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);
    }
}

2 个答案:

答案 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)

我仍然不允许发表评论。这就是为什么我回答简单的事情。

  1. 转到环境变量。
  2. 在系统变量下,点击新建。
  3. 在变量名称中,输入_JAVA_OPTIONS
  4. 在“变量值”中,输入-Xmx256M
  5. 按确定,然后检查它是否有效。