swing如何在java中使jtable不可编辑?
我创建了一个函数,将数据加载到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);
}
}
# 1 楼答案
编辑。 如果要在Netbeans IDE designer中执行此操作,请执行以下步骤:
{public boolean isCellEditable(int row, int column){return false;}}
在最后一个收盘黑点之前(黑点)您的最终设置应如下所示:
# 2 楼答案
正如其他人所说,您必须创建自己的
DefaultTableModel
并覆盖isCellEditable
。要在Netbeans designer中使用它:new JTable(new MyModel())
(假设您创建了MyModel扩展AbstractTableModel类)