您好,我正在开发一个使用 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/