我正在更新Java Swing應用程序以支持用戶將應用程序字體從正常大小切換到較大大小(因此用戶可以在兩者之間切換運行時大小)。我遇到的一個問題是JTree使用HTML作爲樹節點來爲某些節點中的文本加下劃線(HTML僅嵌入在每個樹節點的JLabel中)。關於節點的另外一件事是,它們是一個自定義組件,在每個JLabel前面添加一個JCheckBox。如何強制JTree中的HTML JLabel在字體更改時調整大小
問題是,一旦JTree可見,增加字體大小會導致節點(包含帶下劃線的文本)不能調整大小。這些節點的HTML似乎阻止節點變寬,所以當字體改變時,文本會被截斷。
我認爲我的選擇是:1)使用另一種方法使文本下劃線,因爲從JLabel中刪除HTML會導致它在字體大小更改時正確調整大小,或2)保持HTML格式並以某種方式強制JTree/JLabels在更新字體大小時調整大小(可能通過觸發屬性更改事件?)。
當字體大小得到更新時,代碼已經調用父JFrame上的SwingUtilities.updateComponentTreeUI()。
編輯:用於更改應用程序中的字體的方法是explained here。
任何幫助將不勝感激。提前致謝!
-Mike
這裏最大的問題是:如何在應用程序中更改字體大小?如果沒有回答這個問題,我們不會有任何幫助。 – Riduidel 2010-03-12 08:58:36
感謝您的評論。我已經編輯了這個問題,以包含一個指向之前的SO帖子的鏈接,它解釋了字體如何改變。 – Mike 2010-03-12 12:12:38