Swing/FilterWithoutSorting のバックアップの現在との差分(No.8)
- category: swing folder: FilterWithoutSorting title: JTableのRowSorterをフィルタありソート不可にする tags: [JTable, TableRowSorter] author: aterai pubdate: 2008-08-04T00:17:37+09:00 description: フィルタありでソート不可のTableRowSorterを作成します。 image:
概要
フィルタありでソート不可のTableRowSorter
を作成します。
Screenshot
Advertisement
サンプルコード
#spandel
final TableRowSorter<TableModel> sorter = new TableRowSorter<>(model) {
#spanend
#spanadd
ableRowSorter<TableModel> sorter = new TableRowSorter<>(model) {
#spanend
@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
に以下のような設定をしています。
上記のサンプルでは、行のフィルタリングのみ有効にして行のソートは不可にするためTableRowSorter
に以下のような設定をしています。
DefaultRowSorter#setRowFilter(RowFilter)
で偶数行だけ表示するフィルタを設定DefaultRowSorter#isSortable(int)
をオーバーライドして常にfalse
を返す
DefaultRowSorter#setSortable(int, boolean)
を使用して、一部の列だけソート不可にする方法もあります。
-
DefaultRowSorter#setSortable(int, boolean)
メソッドを使用して一部の列だけソート不可にする方法もある
参考リンク
- DefaultRowSorter (Java Platform SE 6)
- DefaultRowSorter (Java Platform SE 8)
- JTableHeaderのカラムを選択不可にする