Substance UI和自定义JComponent的TitledBorder问题

我正在使用
BorderFactory
创建一个带有Substance UI主题Swing用户界面的标题边框,我遇到了如下所示的异常。我尝试使用
LineBorder
并且效果很好,但看起来Substance UI正在以某种方式干扰
TitledBorder
。边框绘图在
paintComponent
中通过以下方式完成:
if (getBorder() != null) {
   getBorder().paintBorder(this, g, 0, 0, getWidth(), getHeight());
}
这可能是不正确的。我的问题本质上是如何让
TitledBorder
工作而不创建父母
JPanel
并将其设置为相反,这似乎有点像一个警察。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at org.pushingpixels.lafwidget.utils.RenderingUtils.desktopHints(RenderingUtils.java:113)
    at org.pushingpixels.lafwidget.utils.RenderingUtils.installDesktopHints(RenderingUtils.java:85)
    at org.pushingpixels.substance.internal.utils.border.SubstanceEtchedBorder.paintBorder(SubstanceEtchedBorder.java:132)
    at javax.swing.border.TitledBorder.paintBorder(TitledBorder.java:330)
    at javax.swing.JComponent.paintBorder(JComponent.java:947)
    at javax.swing.JComponent.paint(JComponent.java:1055)
    at javax.swing.JComponent.paintChildren(JComponent.java:887)
    at javax.swing.JComponent.paint(JComponent.java:1063)
    at javax.swing.JComponent.paintChildren(JComponent.java:887)
    at javax.swing.JComponent.paint(JComponent.java:1063)
    at javax.swing.JComponent.paintChildren(JComponent.java:887)
    at javax.swing.JComponent.paint(JComponent.java:1063)
    at javax.swing.JComponent.paintChildren(JComponent.java:887)
    at javax.swing.JComponent.paint(JComponent.java:1063)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
    at javax.swing.JComponent.paintChildren(JComponent.java:887)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5213)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1493)
    at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1424)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1217)
    at javax.swing.JComponent.paint(JComponent.java:1040)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
    at java.awt.Container.paint(Container.java:1951)
    at java.awt.Window.paint(Window.java:3814)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:792)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:739)
    at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:688)
    at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1632)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:660)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
在此先感谢您的帮助。     
已邀请:
这是一个深陷在laf-widget内部的错误。它目前假设每个Graphics对象都有一个GraphicsConfiguration和一个与之关联的GraphicsDevice。我有一个称为非实质性的物质分叉,可以解决这个问题。 固定的当前快照的maven坐标是com.github.insubstantial:实体:6.3-SNAPSHOT,快照存储库位于https://oss.sonatype.org/content/repositories/snapshots/。我预计在6月底或者大约6月底发布6.3火车。     

要回复问题请先登录注册