好吧,我制作了一个JTextField,当它中没有字符时,我希望它的背景是红色的,而且一旦写入一个字符,它就会自动变为绿色。
我尝试了这段代码
textField1.setBackground(textField1.getText().equalsIgnoreCase("") ? Color.RED : Color.GREEN);
但它不会自动更新。
谢谢
最佳答案
您应该添加documentListener
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);
}
另外,尝试设置Textfield的opaque属性。
textField1.setOpaque(True)