2009-03-13 16 views
2

ここには、ソート可能なJTable(JTableModelを基底とし、行に値を設定するオブジェクトの配列(1つのオブジェクト= 1行)があります。行を削除する必要があります。JTable行のオブジェクトを検出するための戦略?

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

答えて

6

オスカーはほぼ正しかった、ここでそれが行われるべき方法は次のとおりです。その1ああ

int selectedRow = table.getSelectedRow(); 
tableModel.removeRow(table.convertRowIndexToModel(selectedRow)); 
+0

!! :)私は正確なAPIを覚えていませんでしたが、検索するものを与えてくれることを願っています。また、反対のメソッドconvertRowModelToIndex(またはそのようなもの)があります – OscarRyz

+0

ええ、その非常に:)。そして、私には恥ずべきがあります。http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#sorting – yanchenko

+0

彼は彼が...ええ...時々私たちは"このページのconvertRowIndextToModelを探していますか?下にスクロールしてください..." – OscarRyz

3

私は(確かではないが)ビューインデックスが表すモデルの実際のインデックスを返す "modelToView"のようなメソッドがあると思います。

たとえば、あなたはA、B、C、Dを持っていて、descをソートします。 D、C、B、この方法は、このソートを構築している場合、私はこれは、Java 6

でJTableの中に並べ替えまたはサポートされていJXTable上だったと思うビューのインデックス3(A)

ために0を返しますあなたの自己、このメソッドを追加することを検討してください。

関連する問題