Swing Substance LookAndFeel verhält sich merkwürdig

Status
Nicht offen für weitere Antworten.

Tobi

Mitglied
Hallo zusammen,

ich bastel derzeit an einem Java-Programm für das Studium und möcht gerne das Substance LookAndFeel verwenden. Leider funktioniert es nicht richtig.

Java:
jFrame.setDefaultLookAndFeelDecorated(true);
		    try {
		      UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
		      
		    } catch (Exception e) {
		      e.printStackTrace();
		    }


Das wie im Beispiel gezeigte RavenGraphite funktioniert, manch andere aber leider nicht. Nun frage ich mich, an was das liegen kann. Hat jemand von euch eine Idee?
 

Ebenius

Top Contributor
Wie funktionieren denn "manch andere" nicht? Gibt's ne Fehlermeldung? StackTrace? Welches L&F namentlich funktioniert denn beispielsweise nicht?

Ebenius
 

Tobi

Mitglied
Also wenn ich zum Beispiel das Business einstelle, bekomme ich folgende Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.plaf.metal.MetalRootPaneUI cannot be cast to org.jvnet.substance.SubstanceRootPaneUI
at org.jvnet.substance.utils.SubstanceCoreUtilities.getTitlePane(SubstanceCoreUtilities.java:2153)
at org.jvnet.substance.painter.decoration.ImageWrapperDecorationPainter.paintExtraBackground(ImageWrapperDecorationPainter.java:195)
at org.jvnet.substance.painter.decoration.ImageWrapperDecorationPainter.paintDecorationArea(ImageWrapperDecorationPainter.java:118)
at org.jvnet.substance.painter.decoration.SubstanceDecorationUtilities.paintDecorationBackground(SubstanceDecorationUtilities.java:230)
at org.jvnet.substance.painter.decoration.SubstanceDecorationUtilities.paintDecorationBackground(SubstanceDecorationUtilities.java:190)
at org.jvnet.substance.painter.utils.SubstanceFillBackgroundDelegate.update(SubstanceFillBackgroundDelegate.java:145)
at org.jvnet.substance.SubstanceMenuBarUI.__org__jvnet__substance__SubstanceMenuBarUI__update(SubstanceMenuBarUI.java:96)
at org.jvnet.substance.SubstanceMenuBarUI.__org__jvnet__substance__SubstanceMenuBarUI__container__update(SubstanceMenuBarUI.java)
at org.jvnet.substance.SubstanceMenuBarUI.update(SubstanceMenuBarUI.java)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


Der Frame wird angezeigt, lediglich aber kein Inhalt und auch keine Buttons.
 

Ebenius

Top Contributor
Offensichtlich existieren bereits mit Metal-L&F erzeugte Instanzen, zu dem Zeitpunkt zu dem Du das L&F setzt. Ich würde die L&F-Initialisierung entweder direkt am Anfang (bevor ein Stück Swing initialisiert wird) setzen, oder synchron zum EDT (SwingUtilities.invokeAndWait(...)) das L&F setzen und den Komponentenbaum aktualisieren (SwingUtilities.updateComponentTreeUI(Component)).

Ebenius
 

Tobi

Mitglied
Hey, nun habe ich es so gemacht, wie du gesagt hast, also als aller erstes, noch bevor der jFrame erstellt wird, und siehe da, es funktioniert.

Vielen Dank!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hdi LookAndFeel Suche: Substance L&F AWT, Swing, JavaFX & SWT 4
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
T Probleme Substance LaF AWT, Swing, JavaFX & SWT 2
D LAF auf JFrame beschränken oder Substance LAF im Fullscreen AWT, Swing, JavaFX & SWT 6
P Swing mit substance look/feel fenster repaint AWT, Swing, JavaFX & SWT 7
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
F Setzen des LookAndFeel AWT, Swing, JavaFX & SWT 4
T LayoutManager LookAndFeel-Problem AWT, Swing, JavaFX & SWT 4
U LookAndFeel für eine Komponente AWT, Swing, JavaFX & SWT 2
N LookAndFeel Wie kann ich mein eigenes LookAndFeel machen? AWT, Swing, JavaFX & SWT 6
I LookAndFeel setzen AWT, Swing, JavaFX & SWT 17
I LookAndFeel AWT, Swing, JavaFX & SWT 15
GUI-Programmer Translucent JFrame mit System-LookAndFeel AWT, Swing, JavaFX & SWT 4
D LookAndFeel setzen AWT, Swing, JavaFX & SWT 2
hdi Swing ListCellRenderer und LookAndFeel AWT, Swing, JavaFX & SWT 11
K LookAndFeel LookAndFeel nur für einen Frame? AWT, Swing, JavaFX & SWT 6
B LookAndFeel für einen Komponenten AWT, Swing, JavaFX & SWT 2
J Swing LookAndFeel Klassenname herausfinden AWT, Swing, JavaFX & SWT 2
FuriKuri LookAndFeel in Linux setzen AWT, Swing, JavaFX & SWT 16
G LookAndFeel AWT, Swing, JavaFX & SWT 5
G setLookAndFeel to default LookAndFeel? AWT, Swing, JavaFX & SWT 4
D LookAndFeel mit WindowBlinds AWT, Swing, JavaFX & SWT 2
DeeDee0815 LookAndFeel während der Laufzeit verstellen AWT, Swing, JavaFX & SWT 4
I LookAndFeel AWT, Swing, JavaFX & SWT 3
B Frage zu Synth LookAndFeel AWT, Swing, JavaFX & SWT 4
G Windows LookAndFeel - Classpath AWT, Swing, JavaFX & SWT 6
G Ändern der Standartschrift vom LookAndFeel AWT, Swing, JavaFX & SWT 4
G JButton LookAndFeel AWT, Swing, JavaFX & SWT 2
O LookAndFeel und Performance AWT, Swing, JavaFX & SWT 7
M Problem mit LookAndFeel auf unterschiedlichen Rechnern AWT, Swing, JavaFX & SWT 3
B XP-LookAndFeel + modifizierter JTableHeader unsichtbar AWT, Swing, JavaFX & SWT 3
M LookAndFeel? Erst beim 2.Mal Öffnen eines Menüs? AWT, Swing, JavaFX & SWT 3
T LookAndFeel Erstellung :: Problem mit JTabbedPanes AWT, Swing, JavaFX & SWT 2
D Font eines JLabels verändern, JLabel mit LookAndFeel-Format AWT, Swing, JavaFX & SWT 2
N LookAndFeel - Nicht gleich alles überschreiben AWT, Swing, JavaFX & SWT 8
G JFileChooser: leeres Fenster nach LookAndFeel-Wechel AWT, Swing, JavaFX & SWT 7
M LookAndFeel und Mnemonische Kürzel AWT, Swing, JavaFX & SWT 7
G LookAndFeel in extra Fenster einstellbar AWT, Swing, JavaFX & SWT 2
B wie behält man die aktuellen LookAndFeel einstellungen? AWT, Swing, JavaFX & SWT 7
J ChangeListener verhält sich komisch AWT, Swing, JavaFX & SWT 14
B JavaFX setOnMousePressed() - verhält sich wie setOnMouseClicked()? AWT, Swing, JavaFX & SWT 6
G 2D-Slider bzw. eine graphische Auswahlkomponente die sich so verhält AWT, Swing, JavaFX & SWT 6
P JApplet verhält sich im Browser anders als im Eclipse (AppletViewer) AWT, Swing, JavaFX & SWT 3
M Swing + Java2D Sichtfeld bewegen verhält sich träge AWT, Swing, JavaFX & SWT 4
P JList verhält sich anders als sie soll -.- AWT, Swing, JavaFX & SWT 2
T Swing JTextArea verhält sich komisch... AWT, Swing, JavaFX & SWT 8
J JScrollpane verhält sich sprunghaft bei Grössenänderungen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben