Список ключей Java UIManager
Я видел, как люди используют UIManager для изменения строк некоторых предварительно созданных компонентов swing (например, JFileChooser).
где я могу найти какую-то ссылку, которая скажет мне, какие строки, в которых компоненты переменчивы, и как я могу получить к ним доступ?
уточнения:
Я знаю, что UIManager.put(key, newString);
изменит текст строки, на которую ссылается ключ, на "newString"
.
где я могу найти список ключей?
4 ответов
эти ключи предоставляются пакетами ресурсов Swing PLAF, и вы можете найти их в источниках JDK. Видеть например:
- http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/com/sun/swing/internal/plaf/basic/resources/basic.java
- http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/com/sun/java/swing/plaf/windows/resources/windows.java
- http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/com/sun/java/swing/plaf/gtk/resources/gtk.java
- ...
строка значения для языков, отличных от английского, предоставляются соседними файлами пакетов.
и вы можете добавить еще один пакет в любое из этих семейств, просто создав еще один файл для желаемого человеческого языка и разместив его в любом месте вашего пути к классам. Связки .ява и. однако формат свойств работает одинаково хорошо .формат java может быть немного более удобным для Unicode...
это может быть хорошо иметь в виду, хотя это прямое добавление контента в com.sun
пакет может нарушить Лицензии на Java. Поэтому, чтобы быть в безопасности, может быть разумно переместить дополнительные ресурсы в собственный пакет и зарегистрировать его с помощью UIManager
такой:
UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic");
Keys for UIManage
r являютсяLook and Feel
s чувствительный, означает (например) значение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
.