5

テーブルモデルから選択した行インデックスを取得することはできますか?

私のオブジェクトはすでにテーブルモデルについて知っています。テーブルへの参照を渡す代わりに、モデルを使用して選択したインデックスを取得できますか?

4

4 に答える 4

14

MrWigglesが言ったように、テーブル自体からアクセスできるListSelectionModelから取得できます。ただし、JTableには、選択した行を取得するための便利なメソッドもあります。テーブルが並べ替え可能などの場合は、convertRowIndexToModelメソッドも実行する必要があります:)

JTable JavaDocから:

   int[] selection = table.getSelectedRows();
   for (int i = 0; i < selection.length; i++) {
     selection[i] = table.convertRowIndexToModel(selection[i]);
   }
   // selection is now in terms of the underlying TableModel
于 2009-05-13T10:23:00.223 に答える
6

TableModelはデータのみに関係し、ListSelectionModelは現在選択されているものに関係するため、TableModelから選択した行を取得することはできません。

于 2009-05-13T10:12:04.127 に答える
0

モデルクラスにListSelectionModelとTableModelを実装させると、1つのモデルから選択を取得できます...ただし、2つの抽象モデルクラスを拡張することはできません:-((クラスとしてはあまり良い考えではありません)責任が多すぎます)。

于 2009-05-13T10:25:36.567 に答える
0

バインドされたテーブルからインデックスを取得し、それを使用してテーブルモデルを操作できます。たとえば、テーブルモデルの行を削除する場合は次のようになります。

myTableModel.removeValueAt(myTable.getSelectedRow());
于 2017-03-31T12:34:53.330 に答える