Swing/CellEditor のバックアップの現在との差分(No.15)
TITLE:JTableのセルを編集不可にする
JTableのセルを編集不可にする
Posted by terai at 2004-06-14- category: swing folder: CellEditor title: JTableのセルを編集不可にする tags: [JTable, TableModel, TableCellEditor] author: aterai pubdate: 2004-06-14T05:31:42+09:00 description: JTableのすべてのセルを編集不可にする方法をテストします。 image:
概要
JTable
のすべてのセルを編集不可にする方法をテストします。
Screenshot
Advertisement
概要
JTableのセルを編集不可にします。- &jnlp;
- &jar;
- &zip;
#screenshot
サンプルコード
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
JTable table = new JTable(new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {
@Override public boolean isCellEditable(int row, int column) {
return false;
}
});
解説
上記のサンプルは、以下の三種類の方法で、セルを編集不可にすることが出来ます。解説
上記のサンプルは以下の3
種類の設定でセルを編集不可にする方法をテストしています。
- "isCellEditable return false"
- テーブルモデルのTableModel#isCellEditable()メソッドが常にfalseを返すようにオーバーライドして、すべてのセルを編集不可にしています。
- "setDefaultEditor(Object.class, null)"
- 各カラムにセルエディタを設定しない、かつObject.classが使用するデフォルトセルエディタをnullにした場合も、すべてのセルを編集不可にすることができます。
-
Override TableModel#isCellEditable(...) { return false; }
- テーブルモデルの
TableModel#isCellEditable()
メソッドが常にfalse
を返すようにオーバーライドしてすべてのセルを編集不可に設定 -
JTable#isCellEditable()
メソッドをオーバーライドする方法もある- たとえば同じ
TableModel
を使用する2
つのJTable
で片方だけ編集不可にする設定が可能
- たとえば同じ
- テーブルモデルの
-
JTable#setDefaultEditor(Object.class, null);
- 各カラムにセルエディタを設定しない、かつ
Object.class
が使用するデフォルトセルエディタをnull
にすることですべてのセルを編集不可にするtable.setDefaultEditor(Object.class, null);
- 各カラムにセルエディタを設定しない、かつ
- "setEnabled(false)"
- JTable#setEnabled(false)してしまえば、すべてのセルでの編集を禁止することができますが、セルや行の選択なども不可能になってしまいます。
-
JTable#setEnabled(false)
-
JTable#setEnabled(false)
でセルや行の選択なども含めてすべてのセルでの編集を禁止するtable.setEnabled(false);
-