所以我有一个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
。
答案 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();
}
});