【问题标题】:JTable Model data not showing Updated dataJTable 模型数据未显示更新的数据
【发布时间】:2013-03-26 17:16:52
【问题描述】:

我的 Swing 应用程序几乎没有文本文件和 Jtable。当我更新 textFileds 中的值时,这些值在更新数据后没有立即显示在 Jtable 上。 我尝试使用 tbmodel.fireTableDataChanged();但这没有用。

 try {
              String driveID = txtDriverID.getText();
              String trnsCompName = (String)cmbTransCompany.getSelectedItem();
              String trDriverName = txtName.getText();
              String trAddress = txtAddress.getText();
              String trDob = txtDOB.getText();
              String license = txtLicence.getText();
              String telephone = txtTelephone.getText();
              PvtTransportDriver pvtDriver = new PvtTransportDriver(driveID, trnsCompName, trDriverName, trAddress, trDob, license, telephone);
              int res = PvtTransDriverController.updatePvtTransportDriver(pvtDriver);
              tbmodel = (DefaultTableModel) tblAllPvtDrivers.getModel();
              tbmodel.fireTableDataChanged();
              if (res > 0) {
                    JOptionPane.showMessageDialog(null, "Updated");
              }
        } catch (    ClassNotFoundException | SQLException ex) {
              Logger.getLogger(PvtTransDriver.class.getName()).log(Level.SEVERE, null, ex);
        }

【问题讨论】:

    标签: java swing jdbc jtable defaulttablemodel


    【解决方案1】:

    没有必要打电话给fireTableDataChanged。这是由TableModel 调用的。

    要更新表格行,您可以使用setValueAt

    要添加行,您可以使用addRow

    例如:

    tbmodel.setValueAt(driveID, 0, 0);
    

    【讨论】:

    • 谢谢您的回复。但这不是这里的情况。我有使用 setValueAt 方法将数据插入表格的单独方法。我想要做的是当我按下界面上的更新按钮时,文本字段数据应该更新相关的数据库字段。表数据来自数据库,而不是文本字段。所以我想在使用文本字段更新数据库后更新表数据。
    • 然后您需要拨打SQL INSERTUPDATE 电话,最好使用PreparedStatement。看到这个link
    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 2013-02-15
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多