特定の列の値がすべて変更されたこと、つまり列Xのどこかで、一部の値が変更されたことを示すイベントを発生させたいと思います。すべてのイベントはセル、行、またはデータテーブル全体に関係するため、これを行うにはどうすればよいですか...
質問する
5541 次
2 に答える
5
を見るとAbstractTableModel
、TableModelEvent
明示的に作成するとうまくいくようです。
model.fireTableChanged(new TableModelEvent(model, 0, lastRow, columnIndex,
TableModelEvent.UPDATE));
以下のjavadocも参照してくださいTableModelEvent
。
/**
* Depending on the parameters used in the constructors, the TableModelevent
* can be used to specify the following types of changes: <p>
*
* <pre>
* TableModelEvent(source); // The data, ie. all rows changed
* TableModelEvent(source, HEADER_ROW); // Structure change, reallocate TableColumns
* TableModelEvent(source, 1); // Row 1 changed
* TableModelEvent(source, 3, 6); // Rows 3 to 6 inclusive changed
* TableModelEvent(source, 2, 2, 6); // Cell at (2, 6) changed
* TableModelEvent(source, 3, 6, ALL_COLUMNS, INSERT); // Rows (3, 6) were inserted
* TableModelEvent(source, 3, 6, ALL_COLUMNS, DELETE); // Rows (3, 6) were deleted
* </pre>
*
* It is possible to use other combinations of the parameters, not all of them
* are meaningful. (...)
于 2012-08-08T09:31:56.520 に答える
1
個人的には、更新が必要であることをテーブルに指示するだけの場合は、テーブル全体が変更されたことを通知するイベントを発生させます。
于 2012-08-08T09:38:27.843 に答える