开发者

How to get JTextField name in which is Document placed?

开发者 https://www.devze.com 2023-02-28 17:20 出处:网络
Is there something like event.getSource for DocumentListener too? Im trying to change color of just one JTextField in which is text changing.

Is there something like event.getSource for DocumentListener too? Im trying to change color of just one JTextField in which is text changing. Here is my 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);
            tx开发者_StackOverflowtPersonalNumber.setBackground(Color.WHITE);
            txtDateOfBirth.setBackground(Color.WHITE);
        }
    };

If there is nothing like .getSource() for DocumentListener. How to do it?


You are correct, there is no getSource() like some other listeners but you can use Document class's putProperty() and getProperty() to achieve what you are looking for.

you can do

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

and

later in DocumentListener's events, you can get the parent like this

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

where e is DocumentEvent

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号