JTableのセルを編集不可にする
Total: 39178
, Today: 8
, Yesterday: 4
Posted by aterai at
Last-modified:
概要
JTable
のすべてのセルを編集不可にする方法をテストします。
Screenshot
Advertisement
サンプルコード
JTable table = new JTable(new DefaultTableModel() {
@Override public boolean isCellEditable(int row, int column) {
return false;
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルは以下の3
種類の設定でセルを編集不可にする方法をテストしています。
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);
- 各カラムにセルエディタを設定しない、かつ
JTable#setEnabled(false)
JTable#setEnabled(false)
でセルや行の選択なども含めてすべてのセルでの編集を禁止するtable.setEnabled(false);