JFrame无法在Mac上运行

时间:2016-10-16 13:17:20

标签: java macos

运行项目后,Java显示在我的Dock上,但根本没有运行。它在那里停留约5-10秒并消失。代码或我的Mac有什么问题吗?

import javax.swing.JFrame;

public class Test extends JFrame {

    public Test() {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(600,600);
        this.setVisible(true);
        this.setResizable(false);
        this.setTitle("Test");
    }

2 个答案:

答案 0 :(得分:2)

与在Mac上无关。

将此函数添加到主函数(可以在Test.java或任何其他类中),以便创建GUI线程并实例化Test JFrame类。

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

调用new Test();就是您需要做的事情,但是在javax.swing.SwingUtilities.invokeLater中进行调用对于应用程序的未来非常重要,因为它允许您在后台同时执行其他操作,这将删除任何可见的延迟。 This is what Java itself recommends to do.

您需要import javax.swing.SwingUtilities;或只需import javax.swing.*;

答案 1 :(得分:-1)

你需要在某个地方调用测试实例才能工作..

public class Test extends JFrame {

    private static final long serialVersionUID = -2949102464273156555L;

    public Test() {
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(600, 600);
    this.setVisible(true);
    this.setResizable(false);
    this.setTitle("Test");
    }

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