当我启动我的程序时,为什么我的外观看起来很奇怪?
Why is my look and feel look very weird when I launch my program?
我有两个 class,Game.java
和 GameOver.java
。
这部分代码在我启动程序时不起作用:
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Throwable e) {
e.printStackTrace();
}
外观不会在第一次设置时设置,但当 GameOver
class 为 运行 并且您按下重试时,外观会设置。我试图找出这个问题,但我不知道是什么原因造成的。我的代码有什么问题,我该如何解决?
This part of the code won't work when I launch the program.
我猜问题是因为您没有在事件调度线程 (EDT) 上执行代码。
您的部分代码在常规线程上执行,而创建组件的部分代码在 EDT 上执行。我猜想在执行 GUI 创建代码时 LAF 没有设置。
所有与 GUI 相关的代码都应在 EDT 上执行。
您在 class 的静态初始值设定项中做的太多了。为应用程序(设置 LAF 的位置)设置一个 class,为应用程序创建和显示的 JFrame 设置另一个 class class。
我有两个 class,Game.java
和 GameOver.java
。
这部分代码在我启动程序时不起作用:
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Throwable e) {
e.printStackTrace();
}
外观不会在第一次设置时设置,但当 GameOver
class 为 运行 并且您按下重试时,外观会设置。我试图找出这个问题,但我不知道是什么原因造成的。我的代码有什么问题,我该如何解决?
This part of the code won't work when I launch the program.
我猜问题是因为您没有在事件调度线程 (EDT) 上执行代码。
您的部分代码在常规线程上执行,而创建组件的部分代码在 EDT 上执行。我猜想在执行 GUI 创建代码时 LAF 没有设置。
所有与 GUI 相关的代码都应在 EDT 上执行。
您在 class 的静态初始值设定项中做的太多了。为应用程序(设置 LAF 的位置)设置一个 class,为应用程序创建和显示的 JFrame 设置另一个 class class。