Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFrame未在Mac上运行_Java_Macos - Fatal编程技术网

Java JFrame未在Mac上运行

Java JFrame未在Mac上运行,java,macos,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); thi

在运行项目时,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");
    }

您需要在某处调用test实例才能工作

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();
            }
         });
      }
    }

这与使用Mac电脑无关

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

public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new Test();
        }
    });
}
调用
newtest()是您需要做的全部,但是在
javax.swing.SwingUtilities.invokeLater中执行它对应用程序的未来非常重要,因为它允许您在后台同时执行其他操作,这将消除任何可见的延迟


您需要
导入javax.swing.SwingUtilities
或只需导入javax.swing.*

您的
主功能在哪里?或者你在哪里做
newtest()
?这就是我需要的,我完全不知道。谢谢谢谢但是什么是私有静态最终长序列versionuid=-294910246427315655L;例如?JFrame是一个可序列化的对象,因此给类一个serialVersionUID是一个很好的实践,…为了测试,您可以删除它并忽略IDE中的警告