(+LINUX) UIManager erzielt keine Wirkung
*Markus
- java
Hallo,
offensichtlich scheint die Java-UIManager-Klasse mit der Desktop-Umgebung Xfce auf Linux nichts anfangen zu können, da ich glaube, dass mein Java-Code richtig ist:
UIManager.put("Menu.font", new FontUIResource("Arial", Font.TRUETYPE_FONT, 14));
...bringt nichts. Es werden die hässlichen Standardfonts verwendet.
UIManager.put("Menu.font", new Font("Arial", Font.TRUETYPE_FONT, 14));
...dito.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
....hat auch keine Wirkung auf Internal Frames. Bei Windows funktioniert es ausnahmsweise. Bei der Xfce-Oberfläche, die ich benutze, sinddie Internal Frames in diesem Java-Standardblau.
Seltsamerweise gibt UIManager.getDefaults() jede Menge Daten aus, z.B:
OptionPane.errorSound ,, sounds/OptionPaneError.wav
Label.font ,, javax.swing.plaf.FontUIResource[family=Dialog,name=Dialog,style=bold,size=12]
TextArea.caretForeground ,, sun.swing.PrintColorUIResource[r=51,g=51,b=51]
SplitPaneDivider.draggingColor ,, javax.swing.plaf.ColorUIResource[r=64,g=64,b=64]
OptionPane.errorDialog.titlePane.background ,, javax.swing.plaf.ColorUIResource[r=255,g=153,b=153]
Desktop.ancestorInputMap ,, javax.swing.plaf.InputMapUIResource@3570b0
TextArea.inactiveForeground ,, javax.swing.plaf.ColorUIResource[r=184,g=207,b=229]
controlHighlight ,, javax.swing.plaf.ColorUIResource[r=255,g=255,b=255]
TextField.caretBlinkRate ,, 500
TextArea.selectionBackground ,, javax.swing.plaf.ColorUIResource[r=184,g=207,b=229]
Button.defaultButtonFollowsFocus ,, false
ToolTip.background ,, javax.swing.plaf.ColorUIResource[r=184,g=207,b=229]
MenuItem.acceleratorForeground ,, javax.swing.plaf.ColorUIResource[r=99,g=130,b=191]
Tree.font ,, javax.swing.plaf.FontUIResource[family=Dialog,name=Dialog,style=plain,size=12]
TabbedPane.focus ,, javax.swing.plaf.ColorUIResource[r=99,g=130,b=191]
TabbedPane.light ,, javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
ScrollPane.font ,, javax.swing.plaf.FontUIResource[family=Dialog,name=Dialog,style=plain,size=12]
RadioButton.darkShadow ,, javax.swing.plaf.ColorUIResource[r=122,g=138,b=153]
ToolBar.isRollover ,, true
FileChooserUI ,, javax.swing.plaf.metal.MetalFileChooserUI
InternalFrame.activeTitleBackground ,, javax.swing.plaf.ColorUIResource[r=184,g=207,b=229]
MenuItem.disabledForeground ,, javax.swing.plaf.ColorUIResource[r=153,g=153,b=153]
OptionPane.minimumSize ,, javax.swing.plaf.DimensionUIResource[width=262,height=90]
ToggleButton.darkShadow ,, javax.swing.plaf.ColorUIResource[r=122,g=138,b=153]
DesktopIcon.background ,, javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
ToggleButton.textShiftOffset ,, 0
Spinner.ancestorInputMap ,, javax.swing.plaf.InputMapUIResource@79717e
ToggleButton.background ,, javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
List.focusCellHighlightBorder ,, javax.swing.plaf.BorderUIResource$LineBorderUIResource@10a2d64
Slider.background ,, javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
RadioButtonMenuItem.borderPainted ,, true
EditorPane.selectionBackground ,, javax.swing.plaf.ColorUIResource[r=184,g=207,b=229]
Menu.background ,, javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
PasswordField.selectionForeground ,, sun.swing.PrintColorUIResource[r=51,g=51,b=51]
RadioButton.textShiftOffset ,, 0
RadioButton.background ,, javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]
OptionPane.errorIcon ,, javax.swing.plaf.IconUIResource@cfec48
Und was ich noch ganz witzig finde, ist, dass bei einem Befehl wie diesem
rechnung.setFont(new Font("Arial", Font.TRUETYPE_FONT, 14));
wobei "rechnung" ein JMenu ist, der Font gesetzt wird. Setze ich ein
UIManager.put("Menu.font", new Font("Arial", Font.TRUETYPE_FONT, 14));
bleibt das Programm davon wieder unbeeindruckt. Wie kann so etwas sein?
Markus
hallo,
offensichtlich scheint die Java-UIManager-Klasse mit der Desktop-Umgebung Xfce auf Linux nichts anfangen zu können
Der Schluß erscheint mir zweifelhaft. Was hat dein JDK mit der grafischen Oberfläche zu tun?
UIManager.put("Menu.font", new FontUIResource("Arial", Font.TRUETYPE_FONT, 14));
Und warum klammerst du dich so sehr an "Arial" (die ist schließlich unter Linux kaum einmal vorhanden)? Es ist zwar nur ein Schuß ins Blaue, aber was passiert, wenn du statt "Arial" eben mal "Sans Serif" nimmst - oder "Helvetica"?
Grüße aus Berlin
Christoph S.
Hallo,
offensichtlich scheint die Java-UIManager-Klasse mit der Desktop-Umgebung Xfce auf Linux nichts anfangen zu können
Der Schluß erscheint mir zweifelhaft. Was hat dein JDK mit der grafischen Oberfläche zu tun?
Warum JDK? Java greift auf irgendwelche Systemressourcen zu. Wie denn sonst könnte das Java-Programm Fenster wie in der Windowsoberfläche bekommen. Ich lasse mich aber gerne belehren, denn mich würde brennend interessieren, was sich "im Hintergrund" so alles abspielt, dass Java weiß, wie ein Fenster auszusehen hat.
UIManager.put("Menu.font", new FontUIResource("Arial", Font.TRUETYPE_FONT, 14));
Und warum klammerst du dich so sehr an "Arial" (die ist schließlich unter Linux kaum einmal vorhanden)? Es ist zwar nur ein Schuß ins Blaue, aber was passiert, wenn du statt "Arial" eben mal "Sans Serif" nimmst - oder "Helvetica"?
Arial ist bei mir eigentlich standardmäßig vorhanden. Mittlerweile fand ich mithilfe der Java-NG heraus, dass man den UIManager vor einer GUI-Instanzierung setzen muss. Immerhin funktioniert jetzt schon mal der geänderte Font.
Markus