我制作了一个 JTextField,我希望当其中没有字符时它的背景为红色,并且一旦写入字符就自动更改为绿色。
我尝试了这段代码
textField1.setBackground(textField1.getText().equalsIgnoreCase("") ? Color.RED : Color.GREEN);
但它不会自动更新。
谢谢
最佳答案
你应该添加文档监听器
textfield.getDocument().addDocumentListener(this);
@Override
public void insertUpdate(DocumentEvent e)
{
textField1.setBackground(textField1.getText().equalsIgnoreCase("") ? Color.RED : Color.GREEN);
}
@Override
public void removeUpdate(DocumentEvent e)
{
textField1.setBackground(textField1.getText().equalsIgnoreCase("") ? Color.RED : Color.GREEN);
}
@Override
public void changedUpdate(DocumentEvent e)
{
textField1.setBackground(textField1.getText().equalsIgnoreCase("") ? Color.RED : Color.GREEN);
}
还可以尝试设置文本字段的不透明属性。
textField1.setOpaque(True)
关于java - 自动更新 JTextField 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179700/