I have the following problem. I need to get an UI properties:
UIManager.getString(\"OptionPane.okButtonText\")
that returns the string
It appears that OptionPane.okButtonText is a feature unique to Aqua available in all L&Fs, as shown using this approach that includes localized values not seen when iterating over the entrySet().
import javax.swing.UIDefaults;
import javax.swing.UIManager;
/** @see https://stackoverflow.com/questions/5729306 */
public class OptionPaneDefaults {
public static void main(String[] args) throws Exception {
UIManager.LookAndFeelInfo[] lfa =
UIManager.getInstalledLookAndFeels();
for (UIManager.LookAndFeelInfo lf : lfa) {
UIManager.setLookAndFeel(lf.getClassName());
UIDefaults uid = UIManager.getLookAndFeelDefaults();
System.out.println("***"
+ " " + lf.getName()
+ " " + lf.getClassName()
+ " " + uid.size() + " entries");
String ok = "OptionPane.okButtonText";
String text = "";
text += " LAF: " + UIManager.getLookAndFeelDefaults().get(ok);
text += " lookup: " + UIManager.get(ok);
text += " default: " + UIManager.getDefaults().get(ok);
System.out.println(text);
}
}
}
Console, Mac OS X:
*** Metal javax.swing.plaf.metal.MetalLookAndFeel 636 entries LAF: OK lookup: OK default: OK *** Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 1054 entries LAF: OK lookup: OK default: OK *** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 550 entries LAF: OK lookup: OK default: OK *** Mac OS X com.apple.laf.AquaLookAndFeel 711 entries LAF: OK lookup: OK default: OK
Console, Windows 7:
*** Metal javax.swing.plaf.metal.MetalLookAndFeel 636 entries LAF: OK lookup: OK default: OK *** Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 1049 entries LAF: OK lookup: OK default: OK *** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 550 entries LAF: OK lookup: OK default: OK *** Windows com.sun.java.swing.plaf.windows.WindowsLookAndFeel 637 entries LAF: OK lookup: OK default: OK *** Windows Classic com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel 637 entries LAF: OK lookup: OK default: OK