首页 > 解决方案 > 从 ArrayList 获取编辑的 JTextField

问题描述

我有一个在运行时生成的 JTextField 的 ArrayList,这些 JTextField 由 JTable 中的选定行填充。我想让用户编辑 JTextFields 中的值,以便稍后更改数据库并更新 JTable,但我无法找出编辑了哪个 JTextField。

for(int i = 0; i < detailTextFields.size(); i++) {

        detailTextFields.get(i).getDocument().addDocumentListener(new DocumentListener() {
            public void changedUpdate(DocumentEvent e) {
                something(e);                 
            }

            public void removeUpdate(DocumentEvent e) {
                something(e);
            }

            public void insertUpdate(DocumentEvent e) {
                something(e);

            }
            public void something(DocumentEvent e) {
                System.out.println(e);

            }
        });

    }

我目前通过硬编码每个 JTextField 的 DocumentListener 来完成这项工作,但是 JTextField 的数量可能会因选择的选项卡而异,因此我不能再使用它:

JTextField pid = detailTextFields.get(0);
JTextField sid = detailTextFields.get(1);

    pid.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            something(e);                 
        }

        public void removeUpdate(DocumentEvent e) {
            something(e);
        }

        public void insertUpdate(DocumentEvent e) {
            something(e);

        }
        public void something(DocumentEvent e) {
            System.out.println(e);

        }
    });

    sid.getDocument().addDocumentListener(new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            something(e);                 
        }

        public void removeUpdate(DocumentEvent e) {
            something(e);
        }

        public void insertUpdate(DocumentEvent e) {
            something(e);

        }
        public void something(DocumentEvent e) {
            System.out.println(e);

        }
    });

如何检索已编辑的 JTextField 或者我应该采用不同的途径来获取此信息?

标签: javaarrays

解决方案


推荐阅读