Мне нужно иметь возможность программно изменять размер шрифта всех компонентов в моем приложении Swing. Я не могу сделать это обычным способом (с помощью UIManager или putClientProperty), поскольку я использую внешний вид Nimbus, поэтому я использую следующий метод для увеличения размера шрифта каждого компонента в моем приложении отдельно ...Java Swing - Как изменить размер шрифта на TitledBorder JPanel?
private void enlargeFont(java.awt.Component c, float factor) {
c.setFont(c.getFont().deriveFont(c.getFont().getSize() * factor));
}
Проблема, с которой я сталкиваюсь, заключается в том, что я использую TitledBorder на моем JPanel и (предсказуемо), передавая мой JPanel в указанный выше метод, не изменяет размер заголовка границы JPanel.
Так можно ли изменить размер шрифта на границе? (Если бы я мог получить текст границы, я мог бы затем создать новый TitledBorder (используя более крупный шрифт), а затем применить его с помощью метода setBorder() JPanel ... но не представляется возможным получить текст границы
кто-нибудь есть какие-либо предложения о том, как решить
Вы необходимо «revalidate» и «перекрасить» контейнеры, предположительно начиная с корневой панели. C вы отправляете пример кода – MadProgrammer