TITLE:TableRowSorterのSortKeysをクリアする

TableRowSorterのSortKeysをクリアする

編集者:Terai Atsuhiro
作成日:2007-08-27
更新日:2021-11-25 (木) 05:39:17

概要

テーブルヘッダをShift+クリックすることで、行ソートのクリアを行います。

#screenshot

サンプルコード

final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
table.getTableHeader().addMouseListener(new MouseAdapter {
  @Override public void mouseClicked(MouseEvent e) {
    JTableHeader h = (JTableHeader) e.getSource();
    TableColumnModel columnModel = h.getColumnModel();
    int viewColumn = columnModel.getColumnIndexAtX(e.getX());
    int column = columnModel.getColumn(viewColumn).getModelIndex();
    if(column != -1 && e.isShiftDown()) {
      sorter.setSortKeys(null);
    }
  }
});
  • &jnlp;
  • &jar;
  • &zip;

解説

ヘッダにマウスリスナーを設定し、Shiftキーを押しながらのクリックの場合は、TableRowSorter#setSortKeysメソッドを使って、ソートキーを空にしています。

上記のサンプルでは、ソートキーになっていないヘッダカラムをShift+クリックした場合でも、ソート状態をクリアするようになっています。

コメント