Почему мой внешний вид выглядит очень странно, когда я запускаю свою программу? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть два класса, Game.java и GameOver.java.

Game.java
GameOver.java

Thisчасть кода не будет работать при запуске программы:

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

Look and Feel не будет установлен в первый раз, хотя, когда запускается класс GameOver и вы нажимаете «Повторить»,Посмотри и почувствуйЯ пытался отследить эту проблему, но я не знаю, что ее вызывает.Что не так с моим кодом и как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы слишком много делаете в статических инициализаторах одного класса.Иметь класс для приложения (где вы задали LAF) и другой класс для JFrame, который создается и отображается классом приложения.

0 голосов
/ 23 октября 2018

Эта часть кода не будет работать при запуске программы.

Я предполагаю, что проблема в том, что вы не выполняете код в потоке отправки событий (ЛЕТНЕЕ СЕВЕРОАМЕРИКАНСКОЕ ВОСТОЧНОЕ ВРЕМЯ).

Часть вашего кода выполняется в обычном потоке, а часть, создаваемая компонентами, выполняется в EDT.Я полагаю, что LAF не устанавливается при выполнении кода создания GUI.

Весь код, связанный с GUI, должен выполняться в EDT.

...