Список ключей Java UIManager

Я видел, как люди используют UIManager для изменения строк некоторых предварительно созданных компонентов свинга (например, JFileChooser).

Где я могу найти какую-то ссылку, которая скажет мне, какие строки в каких компонентах являются изменяемыми, и как я могу получить к ним доступ?

Чтобы уточнить:

я знаю это UIManager.put(key, newString); изменит текст строки, на которую ссылается ключ, на "newString",

Где я могу найти список ключей?

4 ответа

Решение

Эти ключи предоставляются пакетами ресурсов Swing PLAF, и вы можете найти их в источниках JDK. Смотрите, например:

Строковые значения для языков, отличных от английского, предоставляются смежными пакетными файлами.

И вы можете добавить еще один пакет к любому из этих семейств, просто создав еще один файл для желаемого человеческого языка и разместив его в любом месте на вашем пути к классам. Пакеты в формате.java и.properties работают одинаково хорошо, хотя формат.java может быть немного более удобным для Unicode...

Возможно, стоит иметь в виду, что прямое добавление контента в com.sun Пакет может нарушать лицензию Java. Поэтому, чтобы быть в безопасности, может быть целесообразно переместить ваши дополнительные ресурсы в собственный пакет и зарегистрировать его в UIManager как это:

UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");
  • Keys for UIManageр являются Look and Feelчувствительное, означает (например) значение Keys for Metal Look and Feel может отличаться при сравнении значения из System Look and Feel, уведомление или Key missed тоже

  • использовать UIManager Default s от @camickr

Вы, вероятно, лучше всего сделаете вывод списка самостоятельно, используя код, подобный следующему, поскольку ключи могут отличаться:

public static void printUIManagerKeys()
{
    UIDefaults defaults = UIManager.getDefaults();
    Enumeration<Object> keysEnumeration = defaults.keys();
    ArrayList<Object> keysList = list(keysEnumeration);
    for (Object key : keysList)
    {
        System.out.println(key);
    }
}

Для меня список содержит 1365 элементы на Windows 10,

Похоже, нужно запустить какой-то код, чтобы увидеть все ключи. Я знаю, что вопрос касается Java, но на самом деле самый быстрый способ получить ключи - запустить Groovy (или Gradle) скрипт:

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

Вставьте его в файл и позвоните groovy keys.groovy или же gradle -b keys.groovyкакой инструмент вам легче достать.

Без создания файла это также выполнимо с groovy. Просто выполните:

groovy -e "javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it}"
Другие вопросы по тегам