Does the text in Swing components have a default font? In particular, what about tab labels on JTabbedPane
s?
I'm working on a mock-up of a GUI made with Swing and want it to blend it with a screen image I grabbed of a Swing app.
Does the text in Swing components have a default font? In particular, what about tab labels on JTabbedPane
s?
I'm working on a mock-up of a GUI made with Swing and want it to blend it with a screen image I grabbed of a Swing app.
It depends on the Look and Feel. If it's an application you've written, get the values from UIManager.getDefaults().getFont("TabbedPane.font")
The UIManager Defaults shows what the values are for all properties for all components (including "TabbedPane.font").
Based on the answer of Reverend Gonzo, this piece of code lets you know what keys are in the UIDefaults. As the keys are self-explanatory, you know what key you can use. I had to know the key for the JTextField font, for example, and could only find it this way.
Set<Object> keys = UIManager.getDefaults().keySet();
for (Object key : keys) {
if (key instanceof String && ((String) key).contains("font")) {
System.out.println(key + "=" + UIManager.getDefaults().get(key));
}
}
If you're looking for a font, in your case, just cast the key to a String and check whether it contains the word "font". This way you narrow the set of keys you have potential interest for.
I got a list
And thus you would need to pick TabbedPane.font.
getDefaults()
to a Hashtable
, created an iterator and then checked its keys just as you suggested. –
Ornithomancy It may depend on the 'Look and Feel' you are using, but for me Swing's default font is
DejaVu Sans - Plain
For most components the font size defaults to around 12 or 13
It looks like it's Arial. That's what Identifont tells me and it looks right.
The Java GUI default font is "Helvetica", bold size 9, color gray.
© 2022 - 2024 — McMap. All rights reserved.