Я обновляю приложение Java Swing, чтобы поддерживать переключение шрифта приложения с обычного размера на больший (чтобы пользователь мог переключаться между двумя размерами во время выполнения). Одна проблема, с которой я столкнулся, связана с JTree, который использует HTML для узлов дерева, чтобы подчеркнуть текст в некоторых узлах (HTML просто встроен в JLabel каждого узла дерева). Еще одна вещь, которую нужно знать об узлах, это то, что они являются пользовательским компонентом, добавляя JCheckBox перед каждым JLabel.
Проблема в том, что когда JTree становится видимым, увеличение размера шрифта приводит к тому, что узлы (содержащие подчеркнутый текст) не изменяют размер. HTML для этих узлов, кажется, препятствует расширению узла, поэтому при изменении шрифта текст становится усеченным.
Я думаю, что у меня есть варианты: 1) использовать другой подход для подчеркивания текста, так как удаление HTML из JLabel приводит к его правильному изменению размера при изменении размера шрифта, или 2) сохранение форматирования HTML и как-то принудительно JTree / JLabels для изменения размера при обновлении размера шрифта (возможно, с помощью события изменения свойства?).
Код уже вызывает SwingUtilities.updateComponentTreeUI () в родительском JFrame, когда размер шрифта обновляется.
РЕДАКТИРОВАТЬ: метод, используемый для изменения шрифта в приложении, объясняется здесь .
Любая помощь будет принята с благодарностью. Заранее спасибо!
-Mike