8

我见过人们使用 UIManager 来更改一些预先创建的摆动组件(例如 JFileChooser)的字符串。

我在哪里可以找到某种参考资料,告诉我哪些组件中的哪些字符串是可变的,以及如何访问它们?

澄清:

我知道这UIManager.put(key, newString);会将键引用的字符串文本更改为"newString".

我在哪里可以找到密钥列表?

4

4 回答 4

4
  • Keys for UIManager 是敏感的,当您比较来自、notice的值时,Look and Feel意味着(例如)值Keys for Metal Look and Feel可能会有所不同System Look and FeelKey missed

  • 使用@camickr 的UIManager Default s

于 2012-09-13T18:17:57.267 回答
2

您最好使用如下代码自己转储列表,因为键可能不同:

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);
    }
}

对我来说,该列表1365包含Windows 10.

于 2018-05-11T21:50:50.177 回答
1

这些密钥由 Swing PLAF 资源包提供,您可以在 JDK 源代码中找到它们。参见例如:

非英语语言的字符串值由相邻的捆绑文件提供。

您只需为所需的人类语言再创建一个文件并将其放置在类路径的任何位置,就可以为这些系列中的任何一个再添加一个包。.java 和 .properties 格式的捆绑包同样工作良好,尽管 .java 格式可能对 Unicode 更友好...

com.sun尽管直接将内容添加到包中可能会违反 Java 许可证,但请记住这一点可能会很好。所以为了安全起见,将你的额外资源移动到你自己的包中并像这样注册它可能是明智的UIManager

UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");
于 2016-03-26T14:53:27.710 回答
1

似乎必须运行一些代码才能查看所有键。我知道这个问题是针对 java 的,但真正获得密钥的最快方法是启动 groovy(或 gradle)脚本:

javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it}

将其粘贴到文件中并调用groovy keys.groovyor gradle -b keys.groovy,无论您更容易获得什么工具。

在不创建文件的情况下,它也可以使用 groovy。只需执行:

groovy -e "javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it}"
于 2016-12-03T14:57:23.770 回答