我见过人们使用UIManager来更改一些预先创建的swing组件(例如JFileChooser)的字符串。
我在哪里可以找到某种类型的引用,它可以告诉我哪些组件中的哪些字符串是可更改的,以及如何访问它们?
澄清一下:
我知道UIManager.put(key, newString);会将key引用的字符串文本更改为"newString"。
我在哪里可以找到钥匙列表?
发布于 2016-03-26 22:53:28
这些键是由Swing PLAF资源包提供的,您可以在JDK源代码中找到它们。例如,参见:
英语以外的语言的字符串值由相邻的捆绑包文件提供。
您只需为所需的人类语言创建多一个文件,并将其放在类路径中的任何位置,就可以向这些系列中的任何一个添加另一个包。.java和.properties格式的捆绑包同样工作得很好,尽管.java格式可能对Unicode更友好一些……
尽管将内容直接添加到com.sun包可能会违反com.sun许可,但最好记住这一点。因此,为了安全起见,明智的做法是将您的额外资源移动到您自己的包中,并将其注册到UIManager,如下所示:
UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");发布于 2012-09-14 02:17:57
Keys for UIManager是Look and Feel敏感的,例如,当您比较来自System Look and Feel的值时,注意或Key missed 的值可能是不同的。
发布于 2018-05-12 05:50:50
最好是自己使用如下代码转储列表,因为键可能不同:
public static void printUIManagerKeys()
{
UIDefaults defaults = UIManager.getDefaults();
Enumeration<Object> keysEnumeration = defaults.keys();
ArrayList<Object> keysList = Collections.list(keysEnumeration);
for (Object key : keysList)
{
System.out.println(key);
}
}对我来说,这个列表包含Windows 10上的1365元素。
https://stackoverflow.com/questions/12394608
复制相似问题