アプリのフォントを通常のサイズから大きいサイズに切り替えるユーザーをサポートするために、Java Swing アプリケーションを更新しています (ユーザーは実行時に 2 つのサイズを切り替えることができます)。私が抱えている問題の 1 つは、ツリー ノードに HTML を使用して一部のノードのテキストに下線を引く JTree に関するものです (HTML は各ツリー ノードの JLabel に埋め込まれているだけです)。ノードについて知っておくべきもう 1 つのことは、ノードがカスタム コンポーネントであり、各 JLabel の前に JCheckBox を追加することです。
問題は、JTree が表示された後にフォント サイズを大きくすると、ノード (下線付きのテキストを含む) のサイズが変更されないことです。これらのノードの HTML は、ノードが広くなるのを妨げているように見えるため、フォントが変更されると、テキストが切り捨てられます。
私のオプションは次のいずれかだと思います:1)JLabelからHTMLを削除すると、フォントサイズが変更されたときに適切にサイズ変更されるため、別のアプローチを使用してテキストに下線を付けるか、2)HTMLのフォーマットを維持して何らかの方法でJTree /フォントサイズが更新されたときにサイズを変更するJLabels(おそらくプロパティ変更イベントの発生による?)。
コードは、フォント サイズが更新されると、親 JFrame で SwingUtilities.updateComponentTreeUI() を既に呼び出しています。
編集: アプリケーションでフォントを変更するために使用される方法は、ここで説明されています。
どんな助けでも大歓迎です。前もって感謝します!
-マイク