2

私はJTable(拡張された)との実装TableModelを持っています、そこで私はメソッドを持っています...

  • moveEntryUp(int rowIdx)
  • moveEntryDown(int rowIdx)

...テーブルモデルの実装内。これらが正しく機能することを確認しました。

ただし、テーブルモデルで行われた変更を実際のに反映させるのに問題がありますJTable。この表では、単一行の選択のみを許可し、上と下に別々のボタンあります。行が選出されたら、その行を上下に移動して、選択保持できるようにする必要があります。

たとえば
、行が[A, B, C(selected)]で、上ボタンを押すと、が表示され
ます[A, C(selected), B]

私がこれまでに試したさまざまなアプローチは、JTableの値を更新できないか、選択を失います。


注:
への明示的な呼び出しを必要とするソリューションを使用することを躊躇していますrepaint()。内のすべてのセルが編集可能ではない
と想定します。JTable

4

1 に答える 1

2

自分の質問に答える:

int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);

ここmTableで、はJTableであり、は私のテーブルモデルの実装であり、 (および型キャスト)とmTableModel同等です。mTable.getModel()

尋ねる前にもっと長く突っ込んでおくべきだった!

于 2010-02-05T01:07:08.567 に答える