I've seen people use UIManager to change strings of some pre-created swing components (e.g. JFileChooser).
Where can I find some kind of reference that will tell me which strings in which components are changeable, and how can I access them?
To clarify:
I know that UIManager.put(key, newString);
will change text of string that key references to, to "newString"
.
Where can I find the list of keys?
Keys for UIManage
r areLook and Feel
s sensitive, means (for example) valueKeys for Metal Look and Feel
could be diferrent when you comparing value fromSystem Look and Feel
, notice orKey missed
toouse UIManager Defaults by @camickr
Seems like one has to run some code to see all the keys. I know the question is for java, but really the quickest way to obtain the keys is to launch groovy (or gradle) script:
Paste it to a file and call
groovy keys.groovy
orgradle -b keys.groovy
, whatever tool is easier for you to get.Without creating a file it's also doable with groovy. Simply execute:
You're probably best of by dumping the list yourself using code like the following since keys might differ:
For me the list contains
1365
elements onWindows 10
.These keys are provided by Swing PLAF resource bundles, and you can find them in the JDK sources. See e.g.:
String values for languages other than English are provided by adjacent bundle files.
And you can add one more bundle to any of these families just by creating one more file for desired human language and placing it anywhere on your classpath. Bundles in .java and .properties format work equally well, though .java format may be slightly more Unicode-friendly...
It may be good to keep in mind though that direct adding of content to
com.sun
package may violate the Java license. So to be on the safe side, it may be wise to move your extra resources to a package of your own and register it withUIManager
like this: