Swing/FilterWithoutSorting のバックアップ(No.6)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FilterWithoutSorting へ行く。
- 1 (2014-06-03 (火) 21:14:15)
- 2 (2014-06-12 (木) 21:33:18)
- 3 (2014-09-14 (日) 21:49:10)
- 4 (2014-10-23 (木) 00:50:42)
- 5 (2015-03-19 (木) 16:31:49)
- 6 (2015-05-24 (日) 23:04:05)
- 7 (2016-04-20 (水) 20:28:32)
- 8 (2017-06-08 (木) 13:32:04)
- 9 (2018-06-02 (土) 21:35:29)
- 10 (2020-05-30 (土) 01:10:11)
- 11 (2021-11-13 (土) 19:56:35)
- title: JTableのRowSorterをフィルタありソート不可にする tags: [JTable, TableRowSorter] author: aterai pubdate: 2008-08-04T00:17:37+09:00 description: フィルタありでソート不可のTableRowSorterを作成します。
概要
フィルタありでソート不可のTableRowSorter
を作成します。
Screenshot
Advertisement
サンプルコード
final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model) {
@Override public boolean isSortable(int column) {
return false;
}
};
sorter.setRowFilter(new RowFilter<TableModel, Integer>() {
@Override public boolean include(Entry<? extends TableModel, ? extends Integer> entry) {
return entry.getIdentifier() % 2 == 0;
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、行フィルタだけ利用して、行のソートは出来なくしておきたいので、sorter
に以下のような設定をしています。
DefaultRowSorter#setRowFilter(RowFilter)
で偶数行だけ表示するフィルタを設定DefaultRowSorter#isSortable(int)
をオーバーライドして常にfalse
を返す
DefaultRowSorter#setSortable(int, boolean)
を使用して、一部の列だけソート不可にすることもできます。