3

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);
        }
    };

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

4

1 回答 1

4

你是对的,没有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

于 2011-04-25T02:57:45.013 回答