User editing can be disabled in two places. By disabling edits in the model, no table component using that model will allow editing by the user. By disabling edits in the table component, only that component disallows edits; other table components using the same model will allow editing.
Disabling edits requires subclassing either the JTable or TableModel class.
Note: Although user editing is disabled, programmatically changing values in the model is still possible.
// Create a JTable that disallow edits
JTable table1 = new JTable() {
public boolean isCellEditable(int rowIndex, int vColIndex) {
return false;
}
};
// Create a JTable based on the same model as table1 but allows edits
JTable table2 = new JTable(table1.getModel());
// Create a model that disallows edits; JTable's using this model will not allow edits
TableModel model = new DefaultTableModel() {
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
};