JTable と DefaultModel を使用してスプレッドシートを実装しています。私の問題は、数式を入力し、モデルの値を更新して、model.fireupdate と table changed イベントの間のループに入るようにしたいときです。TableModelEvent を削除してから追加しようとしましたが、機能しません。コンソールに新しい計算値を出力しているため、スプレッドシートは正常に更新されます。例:
セルに 2+3 を入力します
コンソールにスプレッドシートのセル値が表示されます = 5 正常に動作します
Jtable セルにはまだ 2+3 と表示され、セルを更新しようとしているため、例外が発生します。
ご入力いただきありがとうございます。
public void tableChanged(TableModelEvent e) {
final int i = e.getFirstRow();
final int j = e.getColumn();
TableModel model = (TableModel) e.getSource();
final Object data = model.getValueAt(i, j);
if (e.getType() == TableModelEvent.UPDATE) {
my_spreadSheet.editCell(i, j, (String) data); // updating spreadsheet cell here
// and calculating it This works ok
}
my_table.setValueAt( // trying to update the jtable
my_spreadSheet.getCellContent(jtbl_row, jtbl_col), i, j); // here causes error.
}