Java 更新netbeans创建的jTable上的某些条目

Java 更新netbeans创建的jTable上的某些条目,java,swing,netbeans,jtable,Java,Swing,Netbeans,Jtable,下面是由netbeans中包含的GUI生成器创建的jTable的代码。 我将其中一列设置为可编辑(图书馆应用程序的到期日期列) 是的,用户可以编辑该列并键入内容,但是一旦程序关闭,表就不会保存用户输入到这些列中的内容!我试过很多东西,但似乎都不管用!任何帮助都将不胜感激 adultFictionTable = new javax.swing.JTable(); adultFictionTable.setAutoCreateRowSorter(true); adultF

下面是由netbeans中包含的GUI生成器创建的jTable的代码。 我将其中一列设置为可编辑(图书馆应用程序的到期日期列) 是的,用户可以编辑该列并键入内容,但是一旦程序关闭,表就不会保存用户输入到这些列中的内容!我试过很多东西,但似乎都不管用!任何帮助都将不胜感激

    adultFictionTable = new javax.swing.JTable(); 
    adultFictionTable.setAutoCreateRowSorter(true); 
    adultFictionTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); 
    adultFictionTable.setModel(new javax.swing.table.DefaultTableModel( 
    new Object [][] { 
        {"Book 1", "8787987897987", "3/1/11"}, 
        {"The Rows And", "2131223", "2/1/11"} 
    }, 
    new String [] { 
        "Book Name", "ISBN", "Due Date" 
    } 
    ) { 
      Class[] types = new Class [] { 
        java.lang.String.class, java.lang.String.class, java.lang.String.class 
    }; 
    boolean[] canEdit = new boolean [] { 
        false, false, true 
    }; 

    public Class getColumnClass(int columnIndex) { 
        return types [columnIndex]; 
    } 

    public boolean isCellEditable(int rowIndex, int columnIndex) { 
        return canEdit [columnIndex]; 
    } 
    }); 

    adultFictionTable.setName("adultFictionTable"); // NOI18N 



    adultFictionTable.addKeyListener(new java.awt.event.KeyAdapter() { 
    public void keyPressed(java.awt.event.KeyEvent evt) { 
    adultFictionTableKeyPressed(evt); 
    } 
    }); 

    jScrollPane1.setViewportView(adultFictionTable); 
      adultFictionTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("adultFictionTable.columnModel.title0")); // NOI18N
adultFictionTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("adultFictionTable.columnModel.title1")); // NOI18N
adultFictionTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("adultFictionTable.columnModel.title2")); // NOI18N

答案很简单。每次启动应用程序时,代码都会使用相同的
DefaultTableModel
对象填充表格,该对象包含在NetBeans中设置的默认值

如果希望应用程序记住输入的值,则需要从模型中检索这些值并将其保存在文件中(例如)。然后,当应用程序再次启动时,您应该从文件中读取这些值,创建一个新的
DefaultTableModel
,并将这些值放入其中。然后,您应该在表中明确设置此模型。它将覆盖现有的

编辑

以下示例显示了如何检索3列*16行表的模型,以便通过在其中设置空值来清除其内容:

// Retrieving the model
TableModel model = jTableTranslation.getModel();

// Clearing the model
for (int i=0;i<16;i++) {
    for (int j=0;j<3;j++) {
        model.setValueAt("", i, j);
    }
}
//检索模型
TableModel model=jTableTranslation.getModel();
//清除模型

对于(int i=0;i但我不想清除它:s,我只想保存它所在用户的输入值