使用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 绑定

在 netbeans 中使用 JTables

如何使用 netbeans 轻松地将任何数据库视图绑定到 jtable?

获取数据以填充 JTable netbeans