java - 自动更新 JTextField 的背景颜色

标签 java swing background jtextfield

我制作了一个 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/

相关文章:

java - 有没有办法在 Java 中只读取 JSON 文件的一部分?

java - 如何在java二叉树中实现通用的中序遍历?

java - 如何禁用java中的单选按钮组

html - 如何为背景图片提供 alt 和标题?

html - 如何让背景显示完整图像

java - 对象实例化顺序和空指针异常

java - 如何将字符串数组显示到 JPanel?

java - 与执行程序服务卡住的混淆

android - 应用程序支持后台播放视频、cordova 问题、google play 拒绝应用程序

java - 在 Java 中过滤文件数组