1

Java SWING アプリケーションでユーザーを更新するために JTable を使用しようとしています。現在、セルを編集するときに、別のセルをクリックして 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);
            }
        });

ボタン アクション リスナー

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

1 に答える 1

5

他のセルをクリックせずに、ボタンイベントでこれらの変更された値を取得できるようにしたいと思います。

テーブルの編集停止を参照してください。

于 2013-02-14T16:28:27.990 に答える