我开始用JFrame
编写一个简单的Hello world应用程序,我注意到我创建的第一个窗口(或对Swing库的第一个引用)需要15秒才能显示。我还使用从控制台启动的已编译应用程序测试它,看看是否存在差异,并且没有。
这是我的代码:
public static void main(String args[]) {
/* Create and display the form */
SwingUtilities.invokeLater(new Runnable() {
public void run() {
long start = System.currentTimeMillis();
new Test().setVisible(true);
System.out.println("FORM 1: " + (System.currentTimeMillis() - start));
start = System.currentTimeMillis();
new Test2().setVisible(true);
System.out.println("FORM 2: " + (System.currentTimeMillis() - start));
}
});
}
这里有输出:
FORM 1: 15362
FORM 2: 203
我已经阅读过有关禁用D3D for Java2D的内容,但是当我在linux(openSUSE)上工作时,它对我毫无用处。我也尝试从Oracle的JDK 1.8切换到openJDK 1.8,但它仍然没有任何区别。
我可以做些什么来加速这件事?
答案 0 :(得分:0)
尝试运行以下内容:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
long start = System.currentTimeMillis();
new JFrame().setVisible(true);
System.out.println("FORM 1: " + (System.currentTimeMillis() - start));
}
});
如果它仍然需要很长时间,那么你知道它肯定是Swing - 不幸的是,如果你已经尝试过常规方法,那么你可以做的不是很多做到这一点(除了尝试使用Java 7和/或提交有关系统详细信息的错误报告之外)。This可能值得一读,但很大程度上是基于Windows,因此大部分都赢得了#。适用。
如果运行此代码的速度要快得多,那么您的代码的某些其他方面(或IDE自动生成的代码)会导致问题。<\ n / p>
答案 1 :(得分:0)
我不了解当前的Java&#34;趋势&#34;所以我不知道用JavaFX创建Java GUI应用程序,因为我上次尝试用Java创建GUI应用程序大约是5年前,然后我才知道Swing。
正如Gimby在评论中所建议的那样,我尝试了JavaFX,这解决了我的问题。