Swing/CellEditor のバックアップソース(No.21)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/CellEditor へ行く。
- 1 (2004-07-09 (金) 07:38:20)
- 2 (2004-10-08 (金) 06:18:00)
- 3 (2004-11-04 (木) 10:02:54)
- 4 (2005-04-28 (木) 04:33:03)
- 5 (2005-10-23 (日) 14:21:49)
- 6 (2006-02-27 (月) 15:30:55)
- 7 (2006-04-12 (水) 19:35:39)
- 8 (2006-06-21 (水) 13:56:41)
- 9 (2006-07-19 (水) 10:42:55)
- 10 (2006-07-21 (金) 14:10:30)
- 11 (2007-04-04 (水) 13:02:48)
- 12 (2007-10-30 (火) 21:13:03)
- 13 (2008-03-14 (金) 22:20:39)
- 14 (2008-03-19 (水) 14:50:21)
- 15 (2008-05-20 (火) 21:45:33)
- 16 (2008-06-16 (月) 14:12:52)
- 17 (2009-10-23 (金) 21:12:58)
- 18 (2010-12-06 (月) 18:08:49)
- 19 (2013-04-10 (水) 02:41:18)
- 20 (2013-07-26 (金) 00:58:54)
- 21 (2014-11-14 (金) 02:43:33)
- 22 (2014-12-02 (火) 17:37:08)
- 23 (2016-02-27 (土) 22:37:20)
- 24 (2016-09-01 (木) 21:32:55)
- 25 (2017-05-30 (火) 20:38:14)
- 26 (2018-05-17 (木) 16:32:08)
- 27 (2020-05-10 (日) 02:34:15)
- 28 (2021-11-03 (水) 02:24:55)
--- title: JTableのセルを編集不可にする tags: [JTable, TableCellEditor] author: aterai pubdate: 2004-06-14 description: JTableのセルを編集不可にします。 --- * 概要 [#g3871d47] `JTable`のセルを編集不可にします。 #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTIgUbMHLI/AAAAAAAAAS4/v0jIwB26ie4/s800/CellEditor.png) * サンプルコード [#x41114f8] #code(link){{ JTable table = new JTable(new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { return false; } }); }} * 解説 [#y1fb1620] 上記のサンプルは、以下の三種類の方法で、セルを編集不可にすることが出来ます。 - `Override TableModel#isCellEditable(...) { return false; }` -- テーブルモデルの`TableModel#isCellEditable()`メソッドが常に`false`を返すようにオーバーライドして、すべてのセルを編集不可にしています。 - `JTable#setDefaultEditor(Object.class, null);` -- 各カラムにセルエディタを設定しない、かつ`Object.class`が使用するデフォルトセルエディタを`null`にした場合も、すべてのセルを編集不可にすることができます。 #code{{ table.setDefaultEditor(Object.class, null); }} - `JTable#setEnabled(false)` -- `JTable#setEnabled(false)`してしまえば、すべてのセルでの編集を禁止することができますが、セルや行の選択なども不可能になってしまいます。 #code{{ table.setEnabled(false); }} * 参考リンク [#h3c8692e] - [[JTableでキー入力によるセル編集開始を禁止する>Swing/PreventStartCellEditing]] * コメント [#s3a072c4] #comment - セルや行の選択をしないのであれば、`JTable#setFocusable(false)`と`JTable#setCellSelectionEnabled(false)`を合わせて利用することでも編集不可にできるようです。こちらは編集不可というより、文字通りフォーカスしないといった感じですが。 -- &user(shuna); &new{2009-10-23 (Fri) 03:12:58}; -- なるほど。KBD{F2}も含めてキー入力で編集開始できなくなる(マウスクリックでは可能?)ようですね。`table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);`よりすこし強力といった所でしょうか。いつか、こちらから[[JTableでキー入力によるセル編集開始を禁止する>Swing/PreventStartCellEditing]]に移動するかも。 -- &user(aterai); &new{2009-10-23 (金) 22:07:44}; #comment