java - 删除包含某个字母的字符串的 JTable 行

标签 java eclipse swing jtable

您好,我正在开发一个使用 JTable 来连接单词的项目。在表中,已连接在一起的单词之间有一个 @ 字符。

我基本上想删除表中包含字符@的所有行。这是我到目前为止所尝试过的:

for (int i = 0; i < table.getRowCount(); i++) {
                if ((boolean)table.getValueAt(i, 0).equals("\\b[@]+\\b")) {
                    table.remove(i);
                }
            }

此代码未按预期工作。我想知道编写这段代码的正确方法。感谢您提前回复。

最佳答案

您的代码调用 remove() method inherited from the Container class - 您想要操作您的表所使用的表模型。假设您使用的是 DefaultTableModel,您可以从表中获取模型并使用 removeRow() method.

此外,.equals("\\b[@]+\\b") 不会检查包含“@”字符的字符串。它检查您指定的文本是否完全匹配。您可能想查看 String.contains(...) 方法。

请记住,Swing JTable 中的数据是 stored in an underlying TableModel ,而不是在 JTable 对象本身中。像这样的东西应该有效。

    DefaultTableModel model = (DefaultTableModel) table.getModel();
    for (int i = 0; i < model.getRowCount(); i++) {
        if (model.getValueAt(i, 0) != null && model.getValueAt(i, 0).toString().contains("@")) {
            model.removeRow(i);
        }
    }

关于java - 删除包含某个字母的字符串的 JTable 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806074/

相关文章:

java - 从 W 参数在主机端生成 ECDSA 公钥

java spring Long[](数组)类型

java - WindowBuilder 中的超大 JPanel

java - eclipse Java : Template for the 'create field' quick fix suggestion?

java - 如何更新.getText()?

java - 使用 Java2D 图形绘制时调整 JScrollPane 中的滚动条大小?

java - FlowLayout 对齐方式更改在 Swing 中不直接可见

java - Akka 流回调

java - org.jgap.* 不包括所有内容

java - eclipse : Intermittent com. mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障