【发布时间】:2018-05-27 03:24:15
【问题描述】:
审稿人注意:这可能是 NimbusLookAndFeel 中的一个(可能已知的)错误,并且(目前)还不是规范 NPE 问题的副本。 p>
我有多个类,但我不知道异常可能暗示其中的哪一个。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.synth.SynthTreeUI.paint(SynthTreeUI.java:382)
at javax.swing.plaf.synth.SynthTreeUI.update(SynthTreeUI.java:269)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
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)
如您所见,异常没有将我的代码链接到任何地方。
对于create a Minimal, Complete, and Verifiable example 我无法通过所有项目,因为它很长,我无法在上面放一段代码,因为我没有找到源头的线索。
我扩展:
-
来自
DefaultMutableTreeNode为了@Override public String toString() -
来自
DefaultTreeCellRenderer为了@Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
现在的情况是:
//Fails
//javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
//Works
//javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
//Works
//javax.swing.UIManager.setLookAndFeel("com.apple.laf.AquaLookAndFeel");
注意: 我不需要解决方案。如果不提供代码,那将是不合逻辑的!!!
问题: 我应该具体在哪里寻找问题的根源?
【问题讨论】:
-
当您在 UI 中执行某些特定操作时是否会发生异常?
-
@JimGarrison JFileChooser 没有出现异常,我正在使用带有自定义类的 JTree。
-
“我的项目不能全部通过,因为它很长,我不能在上面放一段代码,因为我没有找到源头的线索。” - 标准方法是从您的(大)项目开始并删除代码/类/功能块,以将其简化为仍然表现出行为的小程序。
-
其他 LAF 是否发生异常?
标签: java swing nullpointerexception look-and-feel nimbus