好吧,我制作了一个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)

09-07 03:04