質問

私は使用しています BorderFactory 物質をテーマにしたスイングユーザーインターフェイスを使用したタイトルの境界線を作成するには、以下に示す例外に出くわします。一緒に試しました LineBorder そしてそれは完全に機能しますが、物質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の腸の奥深くにあるバグです。現在、すべてのグラフィックオブジェクトにはグラフィックコンフィグレーションとそれに関連付けられているグラフィックスデバイスがあると想定しています。私は大量の物質と呼ばれています 実質的なもの それ 修正があります このため。

これが修正されている現在のスナップショットのmaven座標はcom.github.insubstantial:sustance:6.3-snapshotとsnapshotリポジトリは https://oss.sonatype.org/content/repositories/snapshots/. 。 6月の終わりまたは頃に6.3列車をリリースすることを期待しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top