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

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

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

уточнения:

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

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

4 ответов


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

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

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

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

UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");

  • Keys for UIManager являются Look and Feels чувствительный, означает (например) значение Keys for Metal Look and Feel может быть различным при сравнении значения от System Look and Feel, уведомление или Key missed слишком

  • использовать UIManager По УмолчаниюS by @camickr


кажется, что нужно выполнить какой-то код чтобы увидеть ключи. Я знаю, что вопрос для java, но на самом деле самый быстрый способ получить ключи-запустить groovy (или gradle) script:

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}"

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

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 элементы on Windows 10.