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

标签 java swing netbeans event-handling 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 元素的属性窗口中的事件中选择的,因此请帮助我实现这一点。

最佳答案

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

因此,您可能需要考虑 Table Cell Listener仅当单元格中的数据实际更改时才会生成事件。

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

I am using Netbeans ...

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

关于java - 如何实现 JTable 单元格更改的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42889334/

相关文章:

javascript - 我的 Javascript 类上的 Netbeans 7.3.1 自动完成代码不起作用

java - NetBeans OpenGL Pack 中缺少 GLCanvas 和其他 JOGL 类吗?

java - java 中有关 SQL 语法的错误,而查询在 MySQL 中正常工作

java - 如何解密 HttpsURLConnection

java - 如何多次绘制相同的运动图像?

java - Java:sun.sudio:是否可能在每次播放时都不加载音频文件?

java - 一些功能没有按预期工作

java - 如何在考虑 Stroke 的情况下计算路径边界框

java - 为什么迭代器不能返回具体的数据类型?

java - Enum 中没有枚举 const 类