通常,当您使用setEditable(false)或时setEnabled(false),JTextField的背景/前景色变为"变灰".但是,如果之前使用setBackground(color)(例如white)设置了背景颜色,则调用setEnabled或setEditable不会再影响背景颜色.相反,它被先前设置的颜色覆盖.
在WinForms(.NET)中,这可以通过将背景颜色"重置"为非重写默认值来解决,即Color.Empty.这将导致文本框重新获得标准行为.但是,我没有找到类似JTextField的"默认值".如何恢复JTextField以使用默认颜色并在禁用或设置为只读时自动切换颜色?前景色有类似的问题.