Swing/FilterWithoutSorting の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/FilterWithoutSorting へ行く。
- Swing/FilterWithoutSorting の差分を削除
--- category: swing folder: FilterWithoutSorting title: JTableのRowSorterをフィルタありソート不可にする tags: [JTable, TableRowSorter] author: aterai pubdate: 2008-08-04T00:17:37+09:00 description: フィルタありでソート不可のTableRowSorterを作成します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMr425A3I/AAAAAAAAAZk/ZFpsuUZWGcQ/s800/FilterWithoutSorting.png --- * 概要 [#summary] フィルタありでソート不可の`TableRowSorter`を作成します。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMr425A3I/AAAAAAAAAZk/ZFpsuUZWGcQ/s800/FilterWithoutSorting.png) * サンプルコード [#sourcecode] #code(link){{ final TableRowSorter<TableModel> sorter = new TableRowSorter<>(model) { ableRowSorter<TableModel> sorter = new TableRowSorter<>(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; } }); }} * 解説 [#explanation] 上記のサンプルでは、行のフィルタリングのみ有効にして行のソートは不可にしたいので、`TableRowSorter`に以下のような設定をしています。 上記のサンプルでは、行のフィルタリングのみ有効にして行のソートは不可にするため`TableRowSorter`に以下のような設定をしています。 - `DefaultRowSorter#setRowFilter(RowFilter)`で偶数行だけ表示するフィルタを設定 - `DefaultRowSorter#isSortable(int)`をオーバーライドして常に`false`を返す ---- - `DefaultRowSorter#setSortable(int, boolean)`メソッドを使用して一部の列だけソート不可にする方法もある * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/DefaultRowSorter.html DefaultRowSorter (Java Platform SE 8)] - [[JTableHeaderのカラムを選択不可にする>Swing/DisabledHeader]] * コメント [#comment] #comment #comment