【问题标题】:How to get JTextField name in which is Document placed?如何获取放置 Document 的 JTextField 名称?
【发布时间】:2011-08-12 02:19:01
【问题描述】:

DocumentListener 也有类似 event.getSource 的东西吗? 我试图改变一个 JTextField 的颜色,其中文本正在改变。 这是我的 DocumentListener:

DocumentListener posluchac = new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            warn(e);
        }
        public void removeUpdate(DocumentEvent e) {
            warn(e);
        }
        public void insertUpdate(DocumentEvent e) {
            warn(e);
        }
        public void warn(DocumentEvent e) {
            txtName.setBackground(Color.WHITE);
            txtSurname.setBackground(Color.WHITE);
            txtPersonalNumber.setBackground(Color.WHITE);
            txtDateOfBirth.setBackground(Color.WHITE);
        }
    };

如果 DocumentListener 没有像 .getSource() 这样的东西。怎么做?

【问题讨论】:

    标签: java swing jtextfield documentlistener


    【解决方案1】:

    你是对的,没有像其他一些听众一样的getSource(),但你可以使用 Document 类的putProperty()getProperty() 来实现你正在寻找的东西。

    你可以的

    JTextField jTextField = new JTextField("Text 1");
    jTextField.getDocument().putProperty("parent", jTextField);
    

    稍后在 DocumentListener 的事件中,你可以像这样获取父级

    JTextField textField = (JTextField) e.getDocument().getProperty("parent");
    

    其中 e 是 DocumentEvent

    【讨论】:

    • 我不得不使用 putProperty 而不是 setProperty。你的回复对我帮助很大。谢谢好心的先生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多