我创建了一个将数据加载到JTable中的函数。除了此表中的所有单元格都是可编辑的之外,一切都正常。顺便说一句,我对表格模型使用了defaultTableModel。我在Netbeans IDE中执行此操作。请帮帮忙。下面是我的代码:
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);
}
}发布于 2012-05-03 21:31:21
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);编辑过的。如果在Netbeans IDE designer中执行此操作,请执行以下步骤:

之前编辑DefaultTableModel代码definition.
{public boolean isCellEditable(int row, int column){return false;}}您的最终设置应该如下所示:

发布于 2012-05-03 21:38:39
如果您使用DefaultTableModel,您可以覆盖方法isCellEditable,并在构造图形用户界面时实现它:
table.setModel(new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
});发布于 2014-08-28 00:30:40
使用Netbeans的另一种方式是可能的。如果您想继续使用默认的表格模型,就像OP提到的那样,如果您不想创建一个新的表格模型,那么就没有必要这样做。
属性选择“"properties"
不确定从哪个版本开始,但我使用的是Netbeans 7.2
https://stackoverflow.com/questions/10432385
复制相似问题