【问题标题】:How to implement event handler for JTable Cell change如何为 JTable Cell 更改实现事件处理程序
【发布时间】:2023-03-05 18:26:01
【问题描述】:

我想知道如何为 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 元素的属性窗口中的事件中选择的,因此请帮助我实现这一点。

【问题讨论】:

    标签: java swing netbeans event-handling jtable


    【解决方案1】:

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

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

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

    我正在使用 Netbeans ...

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

    【讨论】:

    • 是的,我明白了,由于 netbeans 生成事件监听器,手动实现非常烦人。这就是我问如何手动实现它的原因
    【解决方案2】:
        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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多