2013-03-05 94 views
0

愚蠢的問題:我想着色一個JComboBox - 我的ComboBoxRenderer getListCellRendererComponent方法有時獲得控制並且工作正常 - 在其他時候JComboBox只是白色。這個問題似乎部分受到組合框是否有焦點的影響,但我的方法似乎從來沒有布爾cellHasFocus - 即使JComboBox作爲一個整體似乎具有焦點功能!着色JComboBox

我的一個想法是創建我自己的ComboBox類 - 或者我可以創建一個UI類來處理繪製函數?我試過的東西似乎無效 - 幫助將不勝感激!

+2

的'ListCellRenderer'應該罰款。您將需要共享代碼...您是否只想爲列表部分或字段部分着色? – MadProgrammer 2013-03-05 02:55:37

+0

謝謝,@MadProgrammer!我檢查了一下,我沒有字段部分 - 我只有兩行,並在它們之間切換。所以我想在JComboBox有焦點時將這兩行着色,而當沒有時則爲白色。如果同時選擇了一行,如果它有另一種顏色,它會很好,但這不是必需的。正如我所說的,ListCellRenderer * never *似乎將cellHasFocus視爲true。所以,我不知道我是應該使用JComboBox本身還是使用JComboBoxUI。你能提出一些建議嗎? TIA – 2013-03-06 00:46:30

+0

你有一些示例代碼(你有什麼),我在遇到問題時遇到了麻煩 – MadProgrammer 2013-03-06 01:38:31

回答

0
在我的課

我用這個:(UIManager

UIManager.put("ComboBox.background", new ColorUIResource(Color.lightGray)); 
    UIManager.put("JTextField.background", new ColorUIResource(Color.lightGray)); 
    UIManager.put("ComboBox.selectionBackground", new ColorUIResource(Color.green)); 
    UIManager.put("ComboBox.selectionForeground", new ColorUIResource(Color.RED));