• title: JTableのセルを編集不可にする tags: [JTable, TableModel, TableCellEditor] author: aterai pubdate: 2004-06-14 description: JTableのすべてのセルを編集不可にする方法をテストします。

概要

JTableのすべてのセルを編集不可にする方法をテストします。

サンプルコード

JTable table = new JTable(new DefaultTableModel() {
  @Override public boolean isCellEditable(int row, int column) {
    return false;
  }
});
View in GitHub: Java, Kotlin

解説

上記のサンプルは、以下の三種類の方法で、セルを編集不可にすることが出来ます。

  • Override TableModel#isCellEditable(...) { return false; }
    • テーブルモデルのTableModel#isCellEditable()メソッドが常にfalseを返すようにオーバーライドして、すべてのセルを編集不可にしています。
  • JTable#setDefaultEditor(Object.class, null);
    • 各カラムにセルエディタを設定しない、かつObject.classが使用するデフォルトセルエディタをnullにした場合も、すべてのセルを編集不可にすることができます。
table.setDefaultEditor(Object.class, null);
  • JTable#setEnabled(false)
    • JTable#setEnabled(false)してしまえば、すべてのセルでの編集を禁止することができますが、セルや行の選択なども不可能になってしまいます。
table.setEnabled(false);

参考リンク

コメント