小编典典

如何获取将Document放置在其中的JTextField名称?

java

是否也有类似event.getSource的东西用于DocumentListener?我试图更改仅一个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 类似的东西。怎么做?


阅读 216

收藏
2020-11-01

共1个答案

小编典典

你是正确的,没有getSource()像其他一些听众,但你可以使用文档类的putProperty(),并getProperty()达到你在找什么。

你可以做

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

稍后在DocumentListener的事件中,您可以像这样获取父对象

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

e在哪里 DocumentEvent

2020-11-01