ジャバ:JTable の行の並べ替えとリフレッシュ
-
18-09-2019 - |
質問
私は持っています JTable
(拡張) と実装 TableModel
, 、私はメソッドを持っています...
moveEntryUp(int rowIdx)
moveEntryDown(int rowIdx)
...テーブルモデルの実装内で。これらが正しく動作することを確認しました。
ただし、テーブルモデルで行われた変更を実際のモデルに反映させるのに問題があります。 JTable
. 。このテーブルでは、単一行の選択のみを許可し、個別のボタンを使用しています。 上 そして 下. 。行が選択されたら、その行を上下に移動できる必要があります。 そして 選択範囲を保存します。
例えば。
私の行が [A, B, C(selected)]
, 、上ボタンを押すと、
手に入れるべきです [A, C(selected), B]
.
これまでに試したさまざまなアプローチでは、JTable 内の値の更新に失敗するか、選択が失われます。
注記:
を明示的に呼び出す必要があるソリューションを使用することをためらっています。 repaint()
.
内のすべてのセルが JTable
は ない 編集可能。
解決
自分の質問に答えます
int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);
どこmTable
はJTableのある、そしてmTableModel
は私のテーブルモデルの実装である、とmTable.getModel()
(および型キャスト)に相当します。
尋ねる前に、周りの長いつついてきたはず!
所属していません StackOverflow