2010-12-18 10 views
5

Bir Substance UI temalı Swing kullanıcı arayüzü ile başlık sınırı oluşturmak için BorderFactory kullanıyorum ve aşağıda gösterilen istisna ile karşılaşıyorum. LineBorder ile denedim ve mükemmel çalışıyor, ancak Madde UI'nin bir şekilde TitledBorder ile karıştığını görüyoruz. kendisi yanlış olabilirSubstance UI ve özel JComponent ile TitledBorder problemi

if (getBorder() != null) { 
    getBorder().paintBorder(this, g, 0, 0, getWidth(), getHeight()); 
} 

: sınır çizimi ile paintComponent yapılır. Benim sorum, TitledBorder ana JPanel bir üst oluşturmak ve bunun yerine, bir kopuk biraz gibi görünüyor yerine çalışan nasıl elde edilir.

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) 

Yardımlarınız için şimdiden teşekkür ederiz.

+0

Sınırı hangi bileşene eklemeye çalışıyorsunuz? Tüm bileşenler için bu mu? “JPanel” ile başa çıkamadığını söylüyorsunuz ... – BoffinbraiN

+0

JComponent'in bir alt sınıfı :) –

+1

Bunu doğrudan Substance ekibine bildirmek için daha fazla şansınız olabilir, böylece araştırma yapabilir veya en azından bir geçici çözüm önerebilir. Varsayılan LaF'i kullanırsanız sorunun giderildiğini farz ediyorum. – BoffinbraiN

cevap

1

Bu, laf-widget'ın bağırsağında derin bir hatadır. Şu anda her Graphics nesnesinin bir GraphicsConfiguration ve onunla ilişkili bir GraphicsDevice olduğunu varsayar. Bunun için insubstantial isimli has a fix isimli bir çatalım var. Madde:

maven akımı, bu com.github.insubstantial olan sabit fotoğrafın koordinatları 6.3-SNAPSHOT ve anlık deposu https://oss.sonatype.org/content/repositories/snapshots/ yer almaktadır. Haziran ayı sonunda ya da yaklaşık 6.3 trenini serbest bırakmayı bekliyorum.

+0

Elbette :) Bu arada, aynı zamanda Insubstantial'ı da değiştirmeyi düşünüyordum. –

+0

Bunu kabul edildi olarak işaretleyeceğim, çünkü Madde artık üzerinde çalışılmıyor. –