---
title: TableRowSorter RowFilter
tags: [JTable, TableRowSorter, RowFilter]
tags: [TableRowSorter, RowFilter, JTable]
description: TableRowSorter、RowFilter関係の記事へのスクリーンショット付きリンク一覧
---
このページでは、`JDK 1.6.0`で追加された、`TableRowSorter`、`RowFilter`関係のメモを集めて一覧にしています。

#contents

* TableRowSorter RowFilter [#TableRowSorter]
** TableRowSorterでJTableのソート [#TableRowSorter]
#swingdescription(Swing/TableRowSorter,TableRowSorterでJTableのソート,JDK 6で導入された、TableRowSorterを利用して、JTableの行を降順、昇順にソートします。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTUnbg2jyI/AAAAAAAAAmU/-7yjlGSjBmo/s144/TableRowSorter.png)

** TableRowSorterのソートをヘッダクリックで昇順、降順、初期状態に変更 [#TriStateSorting]
#swingdescription(Swing/TriStateSorting,TableRowSorterのソートをヘッダクリックで昇順、降順、初期状態に変更,JDK 6で導入されたTableRowSorterのソートを、TableSorter.javaのようにヘッダクリックで昇順、降順、初期状態に切り替わるように設定します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTWVWrGvdI/AAAAAAAAApE/-DL1kAZzGsM/s144/TriStateSorting.png)

** RowFilterでJTableの行をフィルタリング [#RowFilter]
#swingdescription(Swing/RowFilter,RowFilterでJTableの行をフィルタリング,JDK 6で導入されたTableRowSorterにRowFilterを設定して、行のフィルタリングを行います。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTST-FvjRI/AAAAAAAAAik/ZbU9nuVVCiI/s144/RowFilter.png)

** RowFilterでJTableのページ分割 [#TablePagination]
#swingdescription(Swing/TablePagination,RowFilterでJTableのページ分割,JDK 6で導入されたRowFilterを使って、JTableの行をPagination風に分割して表示します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTUiUh8yiI/AAAAAAAAAmM/eY1zd24d0ac/s144/TablePagination.png)

** JTableをソートした後の選択状態 [#UpdateSelectionOnSort]
#swingdescription(Swing/UpdateSelectionOnSort,JTableをソートした後の選択状態,JDK 6で導入されたRowSorterを使って、JTableをソートした場合、直前の選択状態がどう変化するかテストします。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTWaXC_E3I/AAAAAAAAApM/H9h2pJw-VSQ/s144/UpdateSelectionOnSort.png)

** JTableのRowFilterを一旦解除してソート [#ResetRowFilter]
#swingdescription(Swing/ResetRowFilter,JTableのRowFilterを一旦解除してソート,JTableのRowFilterを一旦解除してソートし、再びフィルタを設定することで表示される行を更新します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTRuQZLwOI/AAAAAAAAAho/ovjovr-5nuI/s144/ResetRowFilter.png)

** JTableでソート中のカラムセル色 [#SortColumnColor]
#swingdescription(Swing/SortColumnColor,JTableでソート中のカラムセル色,どのカラムでソートされているかを表示するために、セルの背景色を変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTTZ75OnPI/AAAAAAAAAkU/k4lx4c2XKK8/s144/SortColumnColor.png)

** JTableにソートされないサマリー行を表示する [#FixedSummaryRow]
#swingdescription(Swing/FixedSummaryRow,JTableにソートされないサマリー行を表示する,JTableの行をソートしても、常に最終行にサマリーを表示します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTM63Y0s8I/AAAAAAAAAZ8/o3lbm9QBcIs/s144/FixedSummaryRow.png)

** TableRowSorterのSortKeysをクリアする [#ClearSortingState]
#swingdescription(Swing/ClearSortingState,TableRowSorterのSortKeysをクリアする,JDK 6で導入されたTableRowSorterでの行ソートを、テーブルヘッダの「Shift+クリック」でクリアします。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTJF8YbgvI/AAAAAAAAAT0/NDSO1fqmVNw/s144/ClearSortingState.png)

** JTableの列固定とソート [#FixedColumnTableSorting]
#swingdescription(Swing/FixedColumnTableSorting,JTableの列固定とソート,列固定したJTableで、JDK 6で導入されたTableRowSorterを使った行ソートを行います。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTMzes1hqI/AAAAAAAAAZw/-m-PZSFzYAk/s144/FixedColumnTableSorting.png)

* ↑10 ↓11 [#vc5bba89]
#adsensebar

** JTableのソートアイコンを変更 [#TableSortIcon]
#swingdescription(Swing/TableSortIcon,JTableのソートアイコンを変更,JTableのソートアイコンを非表示にしたり、別の画像に変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTUsaUYVkI/AAAAAAAAAmc/34Qz14LqOGc/s144/TableSortIcon.png)

** JTableのRowSorterをフィルタありソート不可にする [#FilterWithoutSorting]
#swingdescription(Swing/FilterWithoutSorting,JTableのRowSorterをフィルタありソート不可にする,フィルタありでソート不可のTableRowSorterを作成します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMr425A3I/AAAAAAAAAZk/ZFpsuUZWGcQ/s144/FilterWithoutSorting.png)

** JTableHeaderにJPopupMenuを追加してソート [#RowSorterPopupMenu]
#swingdescription(Swing/RowSorterPopupMenu,JTableHeaderにJPopupMenuを追加してソート,JTableHeaderにJPopupMenuを追加してソートします。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTSY9WWpNI/AAAAAAAAAis/Z0YqvftAIh8/s144/RowSorterPopupMenu.png)

** JTableでファイルとディレクトリを別々にソート [#FileDirectoryComparator]
#swingdescription(Swing/FileDirectoryComparator,JTableでファイルとディレクトリを別々にソート,JTableでファイルとディレクトリを別々にソートし、ディレクトリが常に先頭になるように設定します。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQXAQuafMsI/AAAAAAAAAqU/BDQdRbMeSnE/s144/FileDirectoryComparator.png)

** JTableがデフォルトでソートする列を設定する [#DefaultSortingColumn]
#swingdescription(Swing/DefaultSortingColumn,JTableがデフォルトでソートする列を設定する,JTableがデフォルトでソートする列とその方向を設定します。,https://lh5.googleusercontent.com/-qvzRq_TxwSg/Texuvm22ELI/AAAAAAAAA84/DhfjZ3TEATk/s144/DefaultSortingColumn.png)

** JTableの検索結果をRowFilterとHighlighterで強調表示する [#TableHighlightRegexFilter]
#swingdescription(Swing/TableHighlightRegexFilter,JTableの検索結果をRowFilterとHighlighterで強調表示する,JTableで正規表現による検索結果をRowFilterとHighlighterを使用して表現します。,https://lh3.googleusercontent.com/-9b6L1m5fhBk/UfUzbWaYGtI/AAAAAAAABw8/xhrIa_pJXls/s144/TableHighlightRegexFilter.png)

** JTableの複数キーを使ったソートをヘッダに表示する [#MultisortHeaderRenderer]
#swingdescription(Swing/MultisortHeaderRenderer,JTableの複数キーを使ったソートをヘッダに表示する,JTableの複数キーを使ったソートの状態をヘッダ上に別途表示します。,https://lh3.googleusercontent.com/-QNe3lJ3oXH0/Ulqu3vaS91I/AAAAAAAAB3U/Tb2kXiKV8Fs/s144/MultisortHeaderRenderer.png)

** JTableのPaginationとSwingWorkerでの逐次読み込み [#PageInputForPagination]
#swingdescription(Swing/PageInputForPagination,JTableのPaginationとSwingWorkerでの逐次読み込み,JTableでRowFilterを使ったPaginationとSwingWorkerでの逐次読み込みを行います。,https://lh5.googleusercontent.com/-1qIJd4HlwkQ/UnaN9fNNZtI/AAAAAAAAB5Y/JqssphQAq3Q/s144/PageInputForPagination.png)

** JTableのモデルが更新された時にソートを行う [#SortsOnUpdates]
#swingdescription(Swing/SortsOnUpdates,JTableのモデルが更新された時にソートを行う,JTableのモデルが更新された時にソートを行うように設定し、値の変更、行の追加などでの状態変化をテストします。,https://lh3.googleusercontent.com/-sydiHRbXRzw/VLvNhDDXdlI/AAAAAAAANvI/Qelj8B1NIWs/s144/SortsOnUpdates.png)

** JTableのSortKeyを永続化し、ソート状態の保存と復元を行う [#SortKeyPersistence]
#swingdescription(Swing/SortKeyPersistence,JTableのSortKeyを永続化し、ソート状態の保存と復元を行う,JTableのSortKeyを永続化して、そのソート状態をXMLファイルで保存、復元できるように設定します。,https://lh3.googleusercontent.com/-x9GESOvXeyc/Vf7c-CY1veI/AAAAAAAAOCE/lUO7hcq8-fw/s800-Ic42/SortKeyPersistence.png)

* ↑20 ↓21 [#lc01f22e]
#adsensebar

** JTableのセルに設定した日付をRegexFilterでフィルタリングする [#RegexDateFilter]
#swingdescription(Swing/RegexDateFilter,JTableのセルに設定した日付をRegexFilterでフィルタリングする,JTableのセルに設定した日付をRegexFilterなどでフィルタリングするテストを行います。,https://lh3.googleusercontent.com/-yjS3rTYWgk0/VwprmN868uI/AAAAAAAAOSs/-HBZ7l1VimsTNtZo7FDk0wwasI3G4wirACCo/s800-Ic42/RegexDateFilter.png)

** JTable内のチェックされた行のみ別のJTableに表示するフィルタを作成する [#CheckBoxRowFilter]
#swingdescription(Swing/CheckBoxRowFilter,JTable内のチェックされた行のみ別のJTableに表示するフィルタを作成する,JTableの各行に配置したJCheckBoxが選択されている場合、その行を別のJTableに表示するRowFilterを作成します。,https://drive.google.com/uc?id=1NvW9GHFg1_ENevzp5ohu8q4HugyKpkpZdw)

** JTableで同一内容のセルを空表示にしてグループ化を表現する [#RowGroupInTable]
#swingdescription(Swing/RowGroupInTable,JTableで同一内容のセルを空表示にしてグループ化を表現する,JTableで直上のセルと同一内容のセルを空表示にして、行のグループ化を表現します。,https://drive.google.com/uc?id=1BtPc00VYQd5w5UwghwQc6KYrIoZCZ0W_EQ)