如何实现 JTable 单元更改的事件处理程序



我想知道如何实现jTable单元格更改的事件处理程序。我在哪里有这个 jtable,我动态地向这个 jtable 添加数据

用于添加数据的代码段为:

JSONArray objResponseArray = (JSONArray) response.get("response");
DefaultTableModel model = (DefaultTableModel) tblAccounts.getModel();
for (int i = 0; i < objResponseArray.size(); i++) {
    JSONObject objTempAccount = (JSONObject) objResponseArray.get(i);
    Object[] row = {
         objTempAccount.get("Account ID").toString(),
         objTempAccount.get("Account Type").toString(),
         objTempAccount.get("Account Number").toString(),
         objTempAccount.get("Sort Code").toString(),
         objTempAccount.get("Balance").toString(),
         objTempAccount.get("Card").toString()
   };
   model.addRow(row);
}

在此表中,我制作了要编辑的单元格。话虽如此,我如何触发事件处理程序以在单元格更改时触发。当它被触发时,我想获取整行并更新数据库。

重要说明:我正在使用 Netbeans,事件处理程序是从 jtable 元素的属性窗口中的事件中选择的,因此请帮助我实现这一点。

您可以向TableModel添加TableModelListener。更改数据时将生成一个事件。但是,如果您开始将一个单元格和表格编辑到另一个单元格而不更改任何数据,它也会生成一个事件。

因此,您可能需要考虑表单元格侦听器,它只会在单元格中的数据实际更改时生成事件。

在这两种情况下,事件都将包含更改的单元格的行/列,因此您可以使用表的getModel().getValueAt(...)方法轻松地从行中的其他列中获取日期。

我正在使用 Netbeans ...

这应该是无关紧要的。您应该学习如何使用 Swing,而不是 IDE。如果切换 IDE,则代码可能不可移植,尤其是用于构建帧的代码。也就是说,无论如何,您都需要在另一个 IDE 中手动修改代码。

    CellEditorListener ChangeNotification = new CellEditorListener() { 
   public void editingCanceled(ChangeEvent e) {
       //Action to be performed
    }

    public void editingStopped(ChangeEvent e) {
        //Action to be performed
    }
};
use the above code inside the class before the constructor.
Inside the constructor give

tablename.getDefaultEditor(String.class(.addCellEditorListener(ChangeNotification(;

相关内容

  • 没有找到相关文章