小编Ben*_*est的帖子

获取更新的 JTable 值

我正在尝试使用 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()});

}
Run Code Online (Sandbox Code Playgroud)

表监听器

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);
            }
        });
Run Code Online (Sandbox Code Playgroud)

按钮动作监听器

okButton.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent arg0) {
                        Vector data = tableModel.getDataVector();
                        System.out.println(table.getValueAt(0, 1)); …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecelleditor defaulttablemodel

1
推荐指数
1
解决办法
774
查看次数

标签 统计

defaulttablemodel ×1

java ×1

jtable ×1

swing ×1

tablecelleditor ×1