java - 获取更新的 JTable 值

标签 java swing jtable tablecelleditor defaulttablemodel

我正在尝试使用 JTable 来更新 Java SWING 应用程序中的用户,目前当我编辑一个单元格时,只有当我单击另一个单元格从而触发 tableModelListener 时才能获得编辑结果。我希望能够在不单击其他单元格的情况下在按钮事件中获取这些更改的值。

我的表格定义:

DefaultTableModel tableModel = new DefaultTableModel();

table = new JTable(tableModel);

tableModel.addColumn("Key");
tableModel.addColumn("Value");

if (PatientView.getSelected() != null){
    tableModel.addRow(new Object[]{"Name", PatientView.getSelected().getName()});
    tableModel.addRow(new Object[]{"Age", PatientView.getSelected().getAge()});
    tableModel.addRow(new Object[]{"Height", PatientView.getSelected().getHeight()});
    tableModel.addRow(new Object[]{"Weight", PatientView.getSelected().getWeight()});
    tableModel.addRow(new Object[]{"BMI", PatientView.getSelected().getCalculatedBMI()});

}

表监听器

tableModel.addTableModelListener(new TableModelListener(){
            @Override
            public void tableChanged(TableModelEvent arg0) {
                int row = arg0.getFirstRow();
                int column = arg0.getColumn();
                Object data = tableModel.getValueAt(0, 1);
                System.out.println(data);
            }
        });

按钮 Action 监听器

okButton.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent arg0) {
                        Vector data = tableModel.getDataVector();
                        System.out.println(table.getValueAt(0, 1));
                        System.out.println(data);
                    }
                });

最佳答案

I want to be able to get these changed values on a button event without clicking other cells.

参见 Table Stop Editing .

关于java - 获取更新的 JTable 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14879426/

相关文章:

Java Swing 将按钮组添加到 JTabbedPane

java - GridBagLayout的weightx和weighty规范

java - 使用java swing删除选定的复选框

java - 多次调用 java SaxParser.parse(String, Handler) 合法吗?

java - 为什么 org.w3c.dom.DocumentBuilder 偷偷地自己给 XML 元素添加属性

java - 有没有办法将 JPanel 添加到 JTable 的标题中?

java - 如何调整 JTable 列以适应列单元格中最长的内容

java - 我使用 shareDpreferences 将字符串保存在 textView 中,关闭应用程序并再次打开后,它不起作用

java - JPanels 不出现在 JFame 中

java - JComboBox 的 KeyListeners,用作表中的单元格编辑器