Swing/PreventStartCellEditing のバックアップの現在との差分(No.3)
TITLE:JTableでキー入力によるセル編集開始を禁止する
Posted by aterai at 2008-06-16
JTableでキー入力によるセル編集開始を禁止する
キー入力やマウスクリックによるJTableのセル編集開始を禁止します。- category: swing folder: PreventStartCellEditing title: JTableでキー入力によるセル編集開始を禁止する tags: [JTable, TableModel, DefaultCellEditor] author: aterai pubdate: 2008-06-16T13:18:37+09:00 description: キー入力やマウスクリックによるJTableのセル編集開始を禁止します。 image:
概要
キー入力やマウスクリックによるJTable
のセル編集開始を禁止します。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
サンプルコード
#spanend
#spandel
DefaultCellEditor ce = (DefaultCellEditor)table.getDefaultEditor(Object.class);
#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は除く)によるセルの編集開始を禁止
-
-
prevent mouse from starting edit
-
DefaultCellEditor#setClickCountToStart
に大きな値を設定して事実上マウスクリックによる編集開始を禁止
-
-
start cell editing only F2
- 上二つを設定して、セルの編集はF2キーでのみ開始可能になるよう設定
-
isCellEditable return false
-
TableModel#isCellEditable
が常にfalse
を返すように設定し、すべてのカラムでセルエディタの起動を禁止
-
- prevent KeyStroke autoStartsEdit
- table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE); で、キー入力(F2は除く)によるセルの編集開始を禁止します。
参考リンク
- 片っ端から忘れていけばいいじゃない。 JTableで、セル上でキータイプされただけでは編集を開始しないようにする。JTable.autoStartsEdit
- TIPs JTable - Space Of Mind - Confluence
- JTableのセルを編集不可にする
- JTableでキー入力によるセル編集自動開始を一部禁止する
- prevent mouse from starting edit
- DefaultCellEditor#setClickCountToStart に大きな値を設定して、事実上マウスクリックによる編集開始が不可能になっています。
- start cell editing only F2
- 上二つを設定して、セルの編集開始は、F2 キーのみ可能になっています。
- isCellEditable retrun false
- TableModel#isCellEditable が常にfalseを返し、セルエディタは起動されません。
参考リンク
- 片っ端から忘れていけばいいじゃない。 JTableで、セル上でキータイプされただけでは編集を開始しないようにする。JTable.autoStartsEdit
- TIPs JTable - Space Of Mind - Confluence
- JTableのセルを編集不可にする