运行项目后,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");
}
答案 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();
}
});
}
}