を編集することができないようにセルを設定します。のJava - JTableの - 私はとしてインスタンス化モデルとのJTableを持つ
配列が生成されTableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
。しかし、現時点ではまだセルを編集できます。どうすればこれを防ぐことができますか?
ありがとうございます!
を編集することができないようにセルを設定します。のJava - JTableの - 私はとしてインスタンス化モデルとのJTableを持つ
配列が生成されTableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
。しかし、現時点ではまだセルを編集できます。どうすればこれを防ぐことができますか?
ありがとうございます!
JTableまたはDefaultTableModelを拡張し、isCellEditable(int row, int column)
メソッドをオーバーライドし、ユーザーが編集できないようにするセルに対してfalseを返します。上記の方法は可能性があることMREさんのコメントどおり
@Override
public boolean isCellEditable(int row, int column) {
if (column == 1) {
return false;
} else {
return true;
}
}
注:ユーザーが第二列を変更できるようにしたいしなかった場合、その後、あなたのような何かをしたい。例えば
、圧縮されたとして書き直さ:
@Override
public boolean isCellEditable(int row, int column) {
return (column != 1);
}
ユーザーが任意のセルを編集できるようにしたくない場合は、単にこのメソッドは常にfalseを返してきた:
// anonymous inner class example
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
サブクラスを作成するか、DefaultTableModel
の匿名バージョンを作成し、isCellEditable
メソッドをオーバーライドします。
最初の例では、単純に 'return!(column == 1);' – mre
@mre:可能です。 :) –
ありがとう、私のために働いた。 :) –