【问题标题】:Removing multiple items from a Java JTable从 Java JTable 中删除多个项目
【发布时间】:2023-12-17 21:33:02
【问题描述】:

所以我有一个由我创建的对象填充的默认表模型。对象之一是名称,以及对象的其他三个字符串属性。我有一个执行操作的按钮,现在当此按钮执行此操作时,我需要遍历该 DefaultTableModel 中的所有项目,并删除第 0 列中与所选对象具有相同值的所有项目。所以我遇到的问题是这只会删除一个具有该值(名称)的项目。我需要这段代码来删除所有包含与第 0 列相同的字符串值的项目。

                int nRow = suggestedAcTableModel.getRowCount() - 1;

                for (int i = 0; i < nRow; i++) {

                    String acNameStr = suggestedAcTableModel.getValueAt(i, 0).toString();

                    if (acNameStr.equals(acName)) {

                        suggestedAcTableModel.removeRow(i);
                    }
                }

【问题讨论】:

    标签: java swing jtable defaulttablemodel


    【解决方案1】:

    如果您想在每一列中搜索值,然后在找到该值时删除整行,请参见下文。

    for (int i = 0; i < suggestedAcTableModel.getRowCount(); i++) {
        for(int j = 0; j < suggestedAcTableModel.getColumnCount(); j++){
            String acNameStr = suggestedAcTableModel.getValueAt(i, j).toString();
            if (acNameStr.equals(acName)) { 
               suggestedAcTableModel.removeRow(i);
               j = suggestedAcTableModel.getColumnCount();
               i--;
            }
        }
    }
    

    【讨论】: