TITLE:JTableでキー入力によるセル編集開始を禁止する

Posted by at 2008-06-16

JTableでキー入力によるセル編集開始を禁止する

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

  • &jnlp;
  • &jar;
  • &zip;
PreventStartCellEditing.png

サンプルコード

table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
View in GitHub: Java, Kotlin
DefaultCellEditor ce = (DefaultCellEditor)table.getDefaultEditor(Object.class);
ce.setClickCountToStart(Integer.MAX_VALUE);

解説

  • `default`
    • 0列目だけ、編集禁止です。
  • `prevent KeyStroke autoStartsEdit`
    • `table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);で、キー入力(F2`は除く)によるセルの編集開始を禁止します。
  • `prevent mouse from starting edit`
    • `DefaultCellEditor#setClickCountToStart`に大きな値を設定して、事実上マウスクリックによる編集開始が不可能になっています。
  • `start cell editing only F2`
    • 上二つを設定して、セルの編集開始は、`F2`キーのみ可能になっています。
  • `isCellEditable retrun false`
    • `TableModel#isCellEditable`が常にfalseを返し、セルエディタは起動されません。

参考リンク

コメント