• category: swing folder: PreventStartCellEditing title: JTableでキー入力によるセル編集開始を禁止する tags: [JTable, TableModel, DefaultCellEditor] author: aterai pubdate: 2008-06-16T13:18:37+09:00 description: キー入力やマウスクリックによるJTableのセル編集開始を禁止します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTRLZXQW1I/AAAAAAAAAgw/ufR0d0md6Bc/s800/PreventStartCellEditing.png

概要

概要

キー入力やマウスクリックによるJTableのセル編集開始を禁止します。

サンプルコード

サンプルコード

table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
#spandel
View in GitHub: Java, Kotlin
#spanend
#spandel
DefaultCellEditor ce = (DefaultCellEditor)table.getDefaultEditor(Object.class);
#spanend
#spanadd

#spanend
#spanadd
DefaultCellEditor ce = (DefaultCellEditor) table.getDefaultEditor(Object.class);
#spanend
ce.setClickCountToStart(Integer.MAX_VALUE);

解説

  • default
    • 0列目だけ、編集禁止です。

解説

  • default(上記のサンプルでのデフォルト)
    • 0列目だけTableModel#isCellEditable()falseを返すように設定
    • JTable#isCellEditable()メソッドをオーバーライドする場合は列の入れ替えに注意が必要
  • prevent KeyStroke autoStartsEdit
    • table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);で、キー入力(F2は除く)によるセルの編集開始を禁止します。
  • table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE)でキー入力(F2は除く)によるセルの編集開始を禁止
  • prevent mouse from starting edit
    • DefaultCellEditor#setClickCountToStartに大きな値を設定して、事実上マウスクリックによる編集開始が不可能になっています。
  • DefaultCellEditor#setClickCountToStartに大きな値を設定して事実上マウスクリックによる編集開始を禁止
  • start cell editing only F2
    • 上二つを設定して、セルの編集開始は、F2キーのみ可能になっています。
    • 上二つを設定して、セルの編集はF2キーでのみ開始可能になるよう設定
  • isCellEditable return false
    • TableModel#isCellEditableが常にfalseを返すように設定し、すべてのカラムでセルエディタの起動を禁止
  • isCellEditable retrun false
    • TableModel#isCellEditableが常にfalseを返し、セルエディタは起動されません。

参考リンク

参考リンク

コメント

コメント