调用updateComponentTreeUI()时,Java Swing NULL异常;

时间:2019-02-11 21:05:01

标签: java swing nullpointerexception

拨打以下电话:

SwingUtilities.updateComponentTreeUI(comp);

偶尔会导致以下错误:

Exception in thread "AWT-EventQueue-0" 
java.lang.NullPointerException
    at javax.swing.plaf.synth.SynthArrowButton$SynthArrowButtonUI.getPreferredSize(SynthArrowButton.java:106)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1662)
    at javax.swing.plaf.basic.BasicScrollBarUI.layoutVScrollbar(BasicScrollBarUI.java:666)
    at javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(BasicScrollBarUI.java:866)
    at java.awt.Container.layout(Container.java:1511)
    at java.awt.Container.doLayout(Container.java:1500)
    at java.awt.Container.validateTree(Container.java:1696)
    at java.awt.Container.validateTree(Container.java:1705)
    at java.awt.Container.validateTree(Container.java:1705)
    at java.awt.Container.validateTree(Container.java:1705)
    at java.awt.Container.validate(Container.java:1631)
    at javax.swing.RepaintManager$3.run(RepaintManager.java:711)
    at javax.swing.RepaintManager$3.run(RepaintManager.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:708)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1731)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

显然,某些组件变为空。添加了以下IF条件,但无济于事:

if (comp != null)
      SwingUtilities.updateComponentTreeUI(comp);

遍历整个堆栈,它纯粹是一个Java堆栈,没有对自定义代码的引用。实际上,还有其他类似NULL的例外,但引用了其他Java对象。

有没有办法遍历此树中的组件以查找哪个组件返回null?

0 个答案:

没有答案