Swing GUI выдает Exception при попытке изменить GUI в режиме реального времени - PullRequest
2 голосов
/ 05 января 2012

Итак, у меня есть свинг-графический интерфейс, в котором я изменяю его внешний вид по умолчанию, основываясь на некотором входном сигнале из другого класса графического интерфейса, используя что-то вроде этого:

javax.swing.UIManager.setLookAndFeel("newlook&feel");
SwingUtilities.updateComponentTreeUI(this);
pack();

Это работает нормально, но на консоли я вижукаждый раз, когда это называется, генерируется исключение с сообщением типа:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

, и оно относится к номерам строк из классов, которые являются внутренними классами Java.В чем может быть проблема здесь, или я что-то упускаю.

Просто точка, SwingUtilities.isEventDispatchThread() возвращает false в этом сценарии.

1 Ответ

6 голосов
/ 05 января 2012

Просто точка, SwingUtilities.isEventDispatchThread () возвращает false в этом сценарии.

Возможно, в этом проблема, вы пытались вызвать изменение L & F внутри потока EDT?

    SwingUtilities.invokeLater(new Runnable() {
       public void run() {
         javax.swing.UIManager.setLookAndFeel("newlook&feel");
         SwingUtilities.updateComponentTreeUI(OuterClassName.this);
         pack();
        }
      });
...