【发布时间】:2011-08-09 09:57:48
【问题描述】:
我有以下问题。我需要获取一个 UI 属性:
UIManager.getString("OptionPane.okButtonText")
返回字符串"OK",它可以工作。但是,如果我遍历 UIDefaults 密钥集,我永远不会得到密钥 "OptionPane.okButtonText"。有谁知道为什么会这样?我以三种不同的方式(UIManager.getDefaults()、UIManager.getLookAndFeel().getDefaults() 和 UIManager.getLookAndFeelDefaults())获得了 UIDefaults,但这些都不起作用。
编辑:我还找到了JFileChooser 类的this list of properties,其中包含一些未出现在UIDefaults 键集中的属性。问题是:如何以编程方式获取所有这些属性?
编辑:代码示例:
UIDefaults defaults = UIManager.getDefaults();
String thekey = "OptionPane.okButtonText";
System.out.println(thekey + ": " + UIManager.getString(thekey));
for (Enumeration e = defaults.keys(); e.hasMoreElements();) {
Object key = e.nextElement();
System.out.println(key + ": " + defaults.get(key));
}
此代码返回打印these properties。密钥"OptionPane.okButtonText" 不会出现在输出中。
【问题讨论】:
-
您的代码有问题吗? - 工作表
-
我添加代码。 @trashgod 我从这个网站得到代码 :)
-
相对于您系统的默认语言环境,您是否正在做一些不寻常的事情(无论这意味着什么;-)?喜欢使用意大利语默认设置并尝试访问英文版本?
-
ahh - 刚刚注意到“迭代密钥集”:没有意义,这不是它们的存储位置,请参阅我的回答中的说明(并忽略我在这里的最后评论;-)
标签: java swing properties look-and-feel uimanager