在Swing中,是否有一個屬性可以設置JList禁用的前景色?在Swing中,是否有一個屬性可以設置JList禁用的前景色?
我正在使用Netbeans GUI構建器,並且我想向屬性文件中添加一個屬性,該屬性將JList中文本的顏色設置爲禁用JList時的不同默認值。使用Nimbus LAF時,會有不同的顏色,因爲禁用時文本爲灰色,但啓用時爲黑色。禁用時我不希望它變成灰色。
標準的前景色只是.foreground。
謝謝。
在Swing中,是否有一個屬性可以設置JList禁用的前景色?在Swing中,是否有一個屬性可以設置JList禁用的前景色?
我正在使用Netbeans GUI構建器,並且我想向屬性文件中添加一個屬性,該屬性將JList中文本的顏色設置爲禁用JList時的不同默認值。使用Nimbus LAF時,會有不同的顏色,因爲禁用時文本爲灰色,但啓用時爲黑色。禁用時我不希望它變成灰色。
標準的前景色只是.foreground。
謝謝。
該DefaultListCellRenderer
延伸JLabel
。在其getListRendererComponent
方法,它會將其啓用狀態,基於該JList
的傳遞進來。
代碼爲BasicLabelUI
畫禁用JLabel
文本做了一些工作,以畫帶陰影效果的文字。在許多子類中,您將找到代碼來查找"Label.disabledForeground"
UI屬性。 The Nimbus defaults似乎尋找"Label.disabledText"
。
你有幾個選擇:
"Label.disabledText"
屬性在UIManager
,這將使所有JLabel
實例和子類被禁用採取這種着色。JList
創建一個自定義渲染器,用於測試JList
的啓用狀態,然後執行您想要的任何自定義代碼 - 或者,如果您希望它看起來相同(不管啓用狀態測試是否啓用)州。我建議你採取自定義渲染方法,因爲它是很難說一個JLabel
特性的變化會顯現出來,因爲該類用作許多不同組件的builing塊。
如果有屬性設置,則UIManager Defaults程序應該顯示您要更改的屬性。我沒有看到Metal或Windows LAF的屬性,因此可能表明這是直接在UI代碼中進行控制的。
感謝您的提示。我忘記了渲染器。完成擴展DefaultListCellRenderer,覆蓋getListRendererComponent,調用super getListRendererComponent並在返回之前調用setEnabled(true)。這正是我真正想要的。 –