#java #swing #fonts
#java #swing #шрифты
Вопрос:
Мне нужно установить шрифт по умолчанию для моего приложения. Есть ли способ сделать это, который не зависит от LaF?
Ответ №1:
Разобрался:
Вызов с: setUIFont (new javax.swing.plaf.FontUIResource(new Font("MS Mincho",Font.PLAIN, 12)));
private static void setUIFont(javax.swing.plaf.FontUIResource f)
{
java.util.Enumeration<Object> keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements())
{
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof javax.swing.plaf.FontUIResource)
{
UIManager.put(key, f);
}
}
}
Комментарии:
1. хм.. что за странное требование: вы уверены, что хотите использовать один и тот же шрифт для всего ? метки, текстовые компоненты, заголовки, границы, что угодно? Пользователи могут быть сбиты с толку.
2. Да, мне нужно, чтобы это был тот же шрифт. Причина в том, что мне нужно, чтобы это был пользовательский шрифт, который мы используем для поддержки специальных символов. Все в программе имеет шрифт из 12 пунктов, поэтому размер и все такое не должно быть проблемой.
Ответ №2:
для лучшего контроля над тем, как / какие шрифты заменять — независимым от LAF способом, но управляемым для каждого laf-файла — взгляните на проект JGoodies Looks
http://java.net/projects/looks
Это позволяет менять местами целые наборы шрифтов (это набор семантических шрифтов, таких как элемент управления, диалоговое окно, сообщение) во время выполнения.
Комментарии:
1. Потрясающе, я должен проверить это