Swing GUI在尝试实时更改GUI时抛出异常

时间:2012-01-05 10:53:24

标签: java swing look-and-feel

所以我有一个swing GUI,我根据另一个GUI类的输入更改了它的默认外观和感觉,使用类似的东西:

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

这样可以正常工作,但是在控制台上我看到每次调用此异常时都会抛出如下消息:

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

它指的是来自内部Java类的类的行号。这可能是什么问题,或者我错过了什么。

在这种情况下,SwingUtilities.isEventDispatchThread()只返回false

1 个答案:

答案 0 :(得分:6)

  

只是一点,SwingUtilities.isEventDispatchThread()返回false   这种情况。

也许这就是问题,您是否尝试过在EDT线程内调用L& F更改?

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