之前更改背景顏色後禁用時,JTextField的背景顏色不會變爲「變灰」。通常當您使用setEditable(false)
或setEnabled(false)
時,JTextField的背景/前景顏色變爲「變灰」。但是,如果之前使用setBackground(color)
(例如到white
)設置了背景顏色,則對setEnabled
或setEditable
的調用不會再影響背景顏色。相反,它被以前設置的顏色覆蓋。當在
在WinForms(.NET)中,這是通過將背景顏色「重置」爲非覆蓋默認值來解決的,即Color.Empty
。這會導致文本框重新獲得標準行爲。但是,我還沒有爲JTextField找到類似的「默認值」。如何恢復JTextField以使用默認顏色並在禁用或設置爲只讀時自動切換顏色?前景色也有類似的問題。
+1,我從來沒有想過要玩ColorUIResource。 – camickr
或使用JTextField.setDisabled ....(JSpinner,JFormattedTextField,可編輯的JComboBox)而不是任何木偶 – mKorbel
@mKorbel我只看了一個JTextComponent,但據我所知,它只允許你設置禁用的文本顏色,此外,爲什麼讓事情變得容易;) – MadProgrammer