Настройка глобального шрифта для приложения Java

#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. Потрясающе, я должен проверить это