如何获取放置文档的JTextField名称?

时间:2011-04-25 02:44:08

标签: java swing jtextfield documentlistener

是否还有类似于EventListener的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()之类的内容。怎么做?

1 个答案:

答案 0 :(得分: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