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+"%'";
jTable1.setSurrendersFocusOnKeystroke(true);
table = (javax.swing.table.DefaultTableModel) jTable1.getModel();
try{
table.setRowCount(0);
}catch(Exception e){}
try {
ResultSet rs = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY).executeQuery(_sqlCmd);
while (rs.next()){
Object[] data = new Object[numOfCols];
for(int i=0; i<data.length; i++){
data[i] = rs.getObject(i+1);
}
table.addRow(data);
}
table.fireTableDataChanged();
} catch (SQLException ex) {
Logger.getLogger(FindContactGrid.class.getName()).log(Level.SEVERE, null, ex);
}
}
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:
{public boolean isCellEditable(int row, int column){return false;}}
before the last closing blacket );Your final setup should look as shown below: