• category: swing folder: SortsOnUpdates title: JTableのモデルが更新された時にソートを行う tags: [JTable, DefaultRowSorter] author: aterai pubdate: 2015-01-19T00:22:44+09:00 description: JTableのモデルが更新された時にソートを行うように設定し、値の変更、行の追加などでの状態変化をテストします。 image: https://lh3.googleusercontent.com/-sydiHRbXRzw/VLvNhDDXdlI/AAAAAAAANvI/Qelj8B1NIWs/s800/SortsOnUpdates.png

概要

JTableのモデルが更新された時にソートを行うように設定し、値の変更、行の追加などでの状態変化をテストします。

サンプルコード

RowSorter<? extends TableModel> rs = table.getRowSorter();
if (rs instanceof DefaultRowSorter) {
  ((DefaultRowSorter<?, ?>) rs).setSortsOnUpdates(true);
}
View in GitHub: Java, Kotlin

解説

  • セルエディタで値を編集、変更
    • SortsOnUpdates(false)の場合、ソート状態に変化なし(デフォルト)
    • SortsOnUpdates(true)の場合、CellEditorが値をコミットした(DefaultRowSorter#rowsUpdated(...)メソッドが呼び出された)後にソートが実行される
  • モデルに行を追加、削除
    • SortsOnUpdatesの値には依存せず、常にソートが実行される

参考リンク

コメント