使用netbeans设计中心使一个jtable列不可编辑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用netbeans设计中心使一个jtable列不可编辑相关的知识,希望对你有一定的参考价值。
我想使用netbeans使jTable的一列不可编辑
码:
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);
答案
最简单的方法是在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时会看到更多问题。
以上是关于使用netbeans设计中心使一个jtable列不可编辑的主要内容,如果未能解决你的问题,请参考以下文章
关于使按钮在 Netbeans 的 GUI 编辑器中工作的 JDBC 到 JTable 输出查询
如何在JTable Invisible for Swing Java中创建一个列
使用 netbeans GUI builder 进行 JTable 绑定