Swing/UpdateSelectionOnSort のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/UpdateSelectionOnSort へ行く。
- 1 (2008-03-24 (月) 14:15:18)
- 2 (2008-03-24 (月) 17:28:29)
- 3 (2008-09-24 (水) 12:55:07)
- 4 (2013-10-11 (金) 12:54:07)
- 5 (2015-02-05 (木) 14:40:12)
- 6 (2016-05-27 (金) 15:50:33)
- 7 (2017-09-06 (水) 13:59:11)
- 8 (2018-11-20 (火) 16:00:10)
- 9 (2020-11-06 (金) 09:17:55)
- 10 (2022-10-22 (土) 22:52:31)
- 11 (2025-01-03 (金) 08:57:02)
- 12 (2025-01-03 (金) 09:01:23)
- 13 (2025-01-03 (金) 09:02:38)
- 14 (2025-01-03 (金) 09:03:21)
- 15 (2025-01-03 (金) 09:04:02)
TITLE:JTableをソートした後の選択状態
JTableをソートした後の選択状態
編集者:Terai Atsuhiro
作成日:2008-03-24
更新日:2022-10-22 (土) 22:52:31
概要
JDK 1.6 で導入された RowSorter を使って、JTableをソートした場合、直前の選択状態がどう変化するかテストします。
#screenshot
サンプルコード
table.setUpdateSelectionOnSort(true);
- &jnlp;
- &jar;
- &zip;
解説
ソート後の、選択状態は、JTable#setUpdateSelectionOnSort メソッドで切り替えることが出来ます。
- setUpdateSelectionOnSort(true)
- ソート前と、「同じ内容の列」が選択された状態になる
- デフォルト
- setUpdateSelectionOnSort(false)
- ソート前と、「表示上同じ列」が選択された状態になる
JDK 1.5 などで、TableSorter.java を使用したときと同じように、ソート後は選択状態をクリアする場合は、以下のようにJTableHeader に MouseListener を追加して、table.clearSelection() する方法などがあります。
table.getTableHeader().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) { //mousePressed(MouseEvent e) {
if(table.isEditing()) table.getCellEditor().stopCellEditing();
table.clearSelection();
}
});