UI properties does not contain some keys

前端 未结 2 1636
梦谈多话
梦谈多话 2021-01-13 05:08

I have the following problem. I need to get an UI properties:

UIManager.getString(\"OptionPane.okButtonText\")

that returns the string

2条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-13 05:12

    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
    

提交回复
热议问题