3

私はJXTable、モデルがList異なるオブジェクトの である を持っています。選択した列ヘッダーでビューを並べ替えた後、ビュー インデックスをモデル インデックスにマップしようとすると問題が発生します。このコードを使用すると、

int[] selecteds = getTableMember().getSelectedRows();
if (selecteds != null && selecteds.length > 0) {
    for (int row : selecteds) {
        int rr = getTableMember().convertRowIndexToModel(row);
            System.out.println(row+":"+rr);
    }
}

私はこの結果を得ます:

11:240
12:328
13:1174
14:328
15:1174

異なるビュー インデックスが同じモデル インデックスにマップされる理由がわかりません。

解決された問題: 行ごとに変更した直後に fireTableRowsUpdated を呼び出したため、選択したインデックスが正しくなくなりました。

4

1 に答える 1

2

内のオブジェクトListが実際に異なることを確認します。特に、によってComparator使用されるDefaultRowSorterは正しく実装する必要があります。デフォルトは基になるオブジェクトのメソッドに依存しtoString()ますが、独自の実装を指定できることに注意してください。

于 2011-08-11T01:05:49.633 に答える