読者です 読者をやめる 読者になる 読者になる

spring of life

技術、ときどき日常のブログ(予定)

文字列以外の型でテーブルをソートする

Java

またまたswingだよー

何にも設定しないでテーブルのヘッダ部分をクリックすると文字列でソートされるので、

[1, 5, 10, 6]だったら[1, 10, 5, 6]になっちゃう

数値でソートしたいなら、getColumnClassをオーバーライドしてカラムのクラスを変える

new DefaultTableModel(columnNames, 0) {
  public Class<?> getColumnClass(int columnIndex) {
    return Integer.class;
  }
}

こうすると数値でソートされるようになる

カラムごとに型を変えたいなら、columnIndexで場合分けして返すクラスを変える

new DefaultTableModel(columnNames, 0) {
  public Class<?> getColumnClass(int columnIndex) {
    switch (columnIndex) {
    case (0): return Integer.class;
    case (1): return String.class;
    case (2): return String.class;
    case (3): return Integer.class;
    }
    return null;
  }
}