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

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

Posted by terai at 2008-06-16

概要

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

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
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 からのみセルを編集することができるようになっています。
  • TableModel#isCellEditable が常にfalseを返し、セルエディタは起動されません。

コメント