为什么当我启动程序时,我的外观和感觉看起来很奇怪?



我有两个类,Game.javaGameOver.java

游戏.java
游戏结束.java

当我启动程序时,这部分代码将不起作用:

try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Throwable e) {
e.printStackTrace();
}

"外观"不会在第一次设置,但在运行GameOver类并按重试时,"外观"会设置。我试图追踪这个问题,但我不知道是什么原因造成的。我的代码有什么问题,我该如何解决?

当我启动程序时,这部分代码将不起作用。

我的猜测是,问题在于您没有在事件调度线程(EDT(上执行代码。

部分代码在常规线程上执行,创建组件的部分在 EDT 上执行。我猜在执行 GUI 创建代码时没有设置 LAF。

所有与 GUI 相关的代码都应在 EDT 上执行。

你在一个类的静态初始值设定项中做得太多了。为应用程序(在其中设置 LAF(设置一个类,并为应用程序类创建和显示的 JFrame 设置另一个类。

相关内容

最新更新