gpt4 book ai didi

java - 未从 JTable 中删除所需的行

转载 作者:行者123 更新时间:2023-11-29 05:16:07 25 4
gpt4 key购买 nike

这是我的用户界面: enter image description here

当我取消选中“单人”复选框时,表格中房间类型为“单人”的以下行需要删除。

我是这样尝试的:

 private void singlecheckboxActionPerformed(java.awt.event.ActionEvent evt) {

if (!singlecheckbox.isSelected()) {
for (int i = 0; i <roomtable.getRowCount(); i++) {
if (((DefaultTableModel)roomtable.getModel()).getValueAt(i, 1).equals("Single")) {
((DefaultTableModel) roomtable.getModel()).removeRow(i);

}

}
}

}

但问题是只删除了第一行,而不是第一行和第二行..

最佳答案

删除第一行后,rowCount 会发生变化...

例如,这就是你的循环中发生的事情

i = 0
rowCount = 2
delete Row at i
rowCount = 1;
i = 1 ... 1 > rowCount, exit...

相反,您可以尝试更像...

((DefaultTableModel) roomtable.getModel()).setRowCount(0);

我知道,大量作弊...

为了将来引用,当从某种列表中删除它时(并且没有 removeAllclear 方法),最好使用更像...

while (count > 0) {
remove first element from list...
}

已更新...

好的,所以您需要删除“某些”项目...您可以使用 for-loop 作为自动更改索引值,您需要更多地控制索引值并仅增加当您需要更改它时,例如当您想要保留该行时...

DefaultTableModel model = (DefaultTableModel)roomtable.getModel();
int row = 0;
while (row < model.getRowCount()) {
if ((model).getValueAt(row, 1).equals("Single")) {
model.removeRow(row);
} else {
row++;
}
}

关于java - 未从 JTable 中删除所需的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com