MasterDetail Simple Form
usingを作成し、データベースに関連するNetbeans
を持っています。JTable
この列を編集して編集不可にしたいと考えていますJTable
。
私はそれについてグーグルで検索しましたが、これは私が見つけることができるすべてです:
this.masterTable.getColumn("Validation").setEditable(false);
私とはうまくいきません!
MasterDetail Simple Form
usingを作成し、データベースに関連するNetbeans
を持っています。JTable
この列を編集して編集不可にしたいと考えていますJTable
。
私はそれについてグーグルで検索しましたが、これは私が見つけることができるすべてです:
this.masterTable.getColumn("Validation").setEditable(false);
私とはうまくいきません!
Override the isCellEditable(...)
method of the TableModel.
DefaultTableModel model = new DefaultTableModel(...)
{
@Override
public boolean isCellEditable(int row, int column)
{
// add your code here
}
}
JTable table = new JTable( model );
複数の列に対する JTable でのユーザー編集の無効化
JTable table = new JTable(10, 4) {
@Override
public boolean isCellEditable(int row, int column) {
return column == 3 || column==4 || column==5 ? true : false;
}
};
GUIを使用して解決策を見つけました:
JTable を直接拡張する場合の解決策は次のとおりです:(このコードをコンストラクターに配置します)
DefaultTableModel tableModel = new DefaultTableModel(data, colNames){
@Override
public boolean isCellEditable(int row, int column)
{
// make read only fields except column 0,13,14
return column == 0 || column == 13 || column == 14;
}
};
this.setModel(テーブルモデル);
isCellEditable()
Javadoc は次のとおりです。isCellEditable(int, int) は必要なメソッドです。TableModel を使用している場合、このメソッドは、その JTable インスタンスの TableModel のサブクラスでオーバーライドできます。