2011-04-26 75 views
1

我使用UIManager的自訂一些擺動部件,如下面的例子中,的Java更新UIManager的默認值,並重新繪製組件

UIManager.put("TextField.background", COLOR_BG); 
UIManager.put("TextField.foreground", COLOR_FG); 
UIManager.put("TextField.selectionBackground", COLOR_SB); 
UIManager.put("TextField.selectionForeground", COLOR_SF); 
UIManager.put("TextField.caretForeground", COLOR_CF); 

應用程序啓動時我想改變一些顏色後,現在,所以我打電話UIManager.put再次更新UIManager,但組件沒有更新,我試圖repaint(),revalidate(),updateUI()沒有成功。

感謝

回答

2

我相信當你添加的顏色,你需要在將ColorUIResource類來包裝,然後UIManager的。這允許UIManager認爲這些是默認LAF的一部分,而不是自定義顏色,因此它會在更新UI時重置值。

您仍然需要使用:

SwingUtilities.updateComponentTreeUI(...); 

閱讀從Modifying the Look and Feel Swing的教程部分獲取更多信息。

+0

嗨,這工作得很好。謝謝 – Rias 2011-04-26 02:55:27

+0

你有一個很大的吻從我@camickr :) – 2016-07-23 17:03:58