JTableをソートした後の選択状態
Total: 9446, Today: 1, Yesterday: 0
Posted by aterai at
Last-modified:
Summary
JDK 1.6で導入されたRowSorterを使って、JTableをソートした場合、直前の選択状態がどう変化するかテストします。
Screenshot

Advertisement
Source Code Examples
Description
UpdateSelectionOnSort- ソート後の選択状態は
JTable#setUpdateSelectionOnSort(boolean)メソッドで切り替えることが可能 setUpdateSelectionOnSort(true)- ソート前と「同じ内容の行」が選択された状態になる(デフォルト)
setUpdateSelectionOnSort(false)- ソート前と「表示上同じ行」が選択された状態になる
- ソート後の選択状態は
ClearSelectionOnSort- ソート後に選択状態をクリアする場合は
TableRowSorter#toggleSortOrder(int)をオーバーライドしたり、以下のようにJTableHeaderにMouseListenerを追加してtable.clearSelection()を実行する必要がある - チェックなし
- 選択状態を維持(デフォルト)
- チェックあり
- ソート後は選択状態をクリア
JDK 1.5などでTableSorter.javaを使用した場合の動作と同じになるように設定するtable.getTableHeader().addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (table.isEditing()) { table.getCellEditor().stopCellEditing(); } table.clearSelection(); } });
- ソート後に選択状態をクリアする場合は