使用netbeans设计中心制作一列jtable non-ediatble

时间:2018-02-16 11:49:01

标签: java netbeans jtable

我想使用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);

1 个答案:

答案 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时会看到更多问题。