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

Why is my look and feel look very weird when I launch my program?

我有两个 class,Game.javaGameOver.java

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。