猿问

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

我有两个班级,Game.java和GameOver.java.


Game.java
GameOver.java


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


try {

        UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

    } catch (Throwable e) {

        e.printStackTrace();

    }

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


蛊毒传说
浏览 156回答 2
2回答

喵喵时光机

当我启动程序时,这部分代码将不起作用。我的猜测是问题是因为您没有在事件调度线程 (EDT) 上执行代码。部分代码在常规线程上执行,创建组件的部分在 EDT 上执行。我猜想在执行 GUI 创建代码时未设置 LAF。所有与 GUI 相关的代码都应该在 EDT 上执行。

萧十郎

您在一个类的静态初始值设定项中做得太多了。为应用程序创建一个类(在其中设置 LAF)和另一个由应用程序类创建和显示的 JFrame 类。
随时随地看视频慕课网APP

相关分类

Java
我要回答