2

ここに問題があります: JTableModel によってサポートされ、行にデータを入力するオブジェクトの配列 (1 つのオブジェクト = 1 つの行) を持つ並べ替え可能な JTable です。行を削除する必要があります。

並べ替えを行わない場合、オブジェクトの削除は簡単です。選択した行のインデックスを取得し、同じインデックスの下にある配列オブジェクトを削除します。ただし、並べ替えを使用すると、バッキング配列オブジェクトのインデックスと一致しなくなるという意味で、行インデックスが混乱します。これを克服する適切な方法は何ですか?

4

2 に答える 2

6

Oscar はほぼ正しかったので、次のようにします。

int selectedRow = table.getSelectedRow();
tableModel.removeRow(table.convertRowIndexToModel(selectedRow));
于 2009-03-13T00:59:22.957 に答える
3

ビューインデックスが表すモデルの実際のインデックスを返す「modelToView」のようなメソッドがあると思います(よくわかりません)。

たとえば、A、B、C、D があり、dess を並べ替えるとします。D,C,B,A このメソッドは、ビュー インデックス 3 ( A ) に対して 0 を返します。

これは、ソートをサポートする JXTable または Java 6 の JTable にあったと思います。

このソートを自分で作成した場合は、このメソッドを追加することを検討してください。

于 2009-03-13T00:46:52.690 に答える