2010-02-22 99 views
4

現在很多網站都有一個選項,可讓用戶增加或減少網站上顯示的字體大小。我想爲我的Java Swing應用程序添加類似的功能,並且可以選擇將字體更改爲更大尺寸或恢復爲標準尺寸。用戶可以在運行時通過菜單項執行此操作。在Swing應用程序運行時更改字體大小

我的代碼的當前版本不能很好地工作 - 代碼遍歷存儲在UIManager/UIDefaults中的鍵,並且對於每個鍵是Font的情況,我的代碼會派生一個帶有目標點大小的新字體(例如,如果它更大,那麼新的點大小通常是16;否則,如果轉到常規大小,通常是11),然後將該鍵和新字體放在UIManager中。之後,代碼將調用框架上的SwingUtilities.updateComponentTreeUI(),然後打包框架。

該代碼會增加字體一次,但切換回常規大小不起作用。這在菜單欄中尤其明顯。

我對此有何看法?我應該用更大的磅值來創建新的外觀,還是完全使用其他方法?

在此先感謝您的幫助。

回答

4

的代碼將增加字體一次, 但切換回正常大小有 沒有影響

我認爲你需要更新UIManager的一個FontUIResource,而不僅僅是一個字體。

+0

哇。這非常令人印象深刻。你絕對釘上了它。改變我的代碼使用FontUIResource工作奇蹟。謝謝! – Mike 2010-02-23 03:00:58

相關問題