Java 我的JTable在返回isEditable为false后双击时仍可编辑?

Java 我的JTable在返回isEditable为false后双击时仍可编辑?,java,swing,jtable,Java,Swing,Jtable,以下是我更新表格的代码: private void UpdateTable() { String sql = "SELECT * FROM product"; pst = conn.prepareStatement(sql); rs = pst.executeQuery(); summaryproductTable.setModel(DbUtils.resultSetToTableModel(rs)); } 这是由Netbeans(7.3.1)生成的代码,我

以下是我更新表格的代码:

private void UpdateTable() {
    String sql = "SELECT * FROM product";

    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();

    summaryproductTable.setModel(DbUtils.resultSetToTableModel(rs));
}
这是由Netbeans(7.3.1)生成的代码,我添加了isEditable,因为我遵循在stackoverflow中找到的指令:

summaryproductTable = new javax.swing.JTable();

summaryproductTable.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N

summaryproductTable.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null, null, null}
    },
    new String [] {
        "type", "materialcode", "serialnumber", "status", "careof", "date", "name",        "accountnumber", "contactnumber"
    }
)
{public boolean isCellEditable(int row, int column){return false;}}
);



summaryproductTable.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
        summaryproductTableMouseClicked(evt);
    }
});

jScrollPane1.setViewportView(summaryproductTable);
*通过反复试验,我注意到JTable是不可编辑的,但是当您调用UpdateTable()方法时,它又变得可编辑了。

在NetBeans中 在复选框中选中表格->属性->可编辑时,右键单击 让它不被选中
简单….

您需要在任何实现中重写isCellEditable
DbUtils.resultSetToTableModel(rs)
返回的值。我在整个编程生涯中都没有使用过重写,我该如何确切地做到这一点呢?那么最好从基础开始。这就是您在DefaultTableModel中所做的。当您实现一个已经在超类中定义的方法(在您的例子中是isCellEditable)时,您用自己的方法隐藏了原始实现(并为每个单元格返回false)。如果您不能修改源代码,但需要使用此方法,那么您需要编写一个包装表模型。如果你不知道这意味着什么或者怎么做-对不起,你还没有完成任务的基本知识。