I was wondering how to make one column of a JTable editable, the other columns have to be non editable.
I have overwritten isCellEditable() but this changes every cell to non editable. Thnx in advance.
you can set if is isEditable for TableColumn or TableColumn and TableCell too
@Override
public boolean isCellEditable(int row, int col) {
     switch (col) {
         case 0:
         case 1:
             return true;
         default:
             return false;
      }
}
                        Override the table model
isCellEditable(int rowIndex, int columnIndex) takes two arguments, just return true for the column you want?
public boolean isCellEditable(int rowIndex, int columnIndex){
return columnIndex == 0; //Or whatever column index you want to be editable
}
                        this would set editable true for column 3 and 8 and false for others .
DefaultTableModel model = new DefaultTableModel() {
            boolean[] canEdit = new boolean[]{
                    false, false, true, false, false,false,false, true
            };
            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit[columnIndex];
            }
};
                        JXTable/TableColumnExt of the SwingX project have api to configure editability per-table and per-column
 // make the table completely read-only
 xTable.setEditable(false);
 // make a column read-only
 xTable.getColumnExt(index).setEditable(false);
Note that it is only possible to narrow the editability compared to that returned by model.isCellEditable. That is you can make a editable cell read-only but not the other way round
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With