使用netbeans设计中心使一个jtable列不可编辑

问题描述 投票:0回答:1

我想使用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);
java netbeans jtable
1个回答
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时会看到更多问题。

© www.soinside.com 2019 - 2024. All rights reserved.