Java – How to make a jtable not editable in java


I created a function which loads data into a JTable. Everything's working fine except that all the cells in this table are editable. Btw, I used defaultTableModel for the table model. Im doing this in Netbeans IDE. Please help. Here's my code:

private void updateTable(String searchText){

    if(searchText != null)
        this._sqlCmd = this._sqlCmd + " WHERE "+columnCombo.getSelectedItem()+" LIKE '%"+searchText+"%'";
    table = (javax.swing.table.DefaultTableModel) jTable1.getModel();  

    }catch(Exception e){}

    try {
        ResultSet rs = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY).executeQuery(_sqlCmd);
        while ({
            Object[] data = new Object[numOfCols];
            for(int i=0; i<data.length; i++){
                data[i] = rs.getObject(i+1);

    } catch (SQLException ex) {
        Logger.getLogger(FindContactGrid.class.getName()).log(Level.SEVERE, null, ex);

Best Solution

 private TableModel model = new DefaultTableModel(data, columnNames)
    public boolean isCellEditable(int row, int column)
      return false;//This causes all cells to be not editable
  private JTable table = new JTable(model);

Edited. If you are doing this in Netbeans IDE designer, follow the steps below:

  • Select the form on which the JTable is placed
  • From the Navigation Pane, expand JScrollPane and right-click on JTable and Select Customize Code as shown below:

Navigator Pane

  • On the code customizer, select the second drop down and choose custom property. This enables you to edit the DefaultTableModel code definition.
  • Now paste this: {public boolean isCellEditable(int row, int column){return false;}} before the last closing blacket );

Your final setup should look as shown below:

  • Press ok to save - and job done.

Code Customizer