我想使用netbeans制作一列jTable non-ediatble
代码:
public void setResultSets(ResultSet rs1){
jTable4.setModel(DbUtils.resultSetToTableModel(rs1));
jTable4.setRowHeight(50);
jTable4.setFont(new Font("Trebuchet MS", Font.BOLD, 18));
jTable4.getColumnModel().getColumn(0).setPreferredWidth(265);
jTable4.getColumnModel().getColumn(1).setPreferredWidth(266);
jTable4.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}
我试过了:
jTable4.setEnabled(false);
但它不起作用。
这是netbeans生成的代码:
Table4 = new javax.swing.JTable();
jTable4.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane2.setViewportView(jTable4);
答案 0 :(得分:0)
最简单的方法是在DTB上实现isCellEditable:
new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
) {
@Override public boolean isCellEditable(int row, int col) {
return col != 3; //Third column is not editable
}
}
顺便说一句,您需要实现自己的TableModel,在使用DefaultTableModel时会看到更多问题。