Java 未从JTable中删除所需的行
这是我的用户界面: 一旦我取消选中“single”复选框,需要删除表中房间类型为“single”的以下行 我是这样尝试的:Java 未从JTable中删除所需的行,java,swing,jtable,Java,Swing,Jtable,这是我的用户界面: 一旦我取消选中“single”复选框,需要删除表中房间类型为“single”的以下行 我是这样尝试的: private void singlecheckboxActionPerformed(java.awt.event.ActionEvent evt) { if (!singlecheckbox.isSelected()) { for (int i = 0; i <roomtable.getRowCount(); i++) {
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);
}
}
}
}
private void singlecheckboxActionPerformed(java.awt.event.ActionEvent evt){
如果(!singlecheckbox.isSelected()){
对于(int i=0;i删除第一行后,rowCount
将更改
例如,这就是循环中发生的事情
i = 0
rowCount = 2
delete Row at i
rowCount = 1;
i = 1 ... 1 > rowCount, exit...
相反,你可以尝试更像
((DefaultTableModel) roomtable.getModel()).setRowCount(0);
while (count > 0) {
remove first element from list...
}
我知道,大骗子
作为将来的参考,当从某种类型的列表中删除此项时(并且没有removeAll
或clear
方法),最好使用类似于
((DefaultTableModel) roomtable.getModel()).setRowCount(0);
while (count > 0) {
remove first element from list...
}
已更新…
好的,所以您需要删除“某些”项…您可以使用for循环
,因为自动更改索引值,您需要对索引值进行更多控制,并仅在需要更改时增加,例如,当您希望保留行时
DefaultTableModel model = (DefaultTableModel)roomtable.getModel();
int row = 0;
while (row < model.getRowCount()) {
if ((model).getValueAt(row, 1).equals("Single")) {
model.removeRow(row);
} else {
row++;
}
}
DefaultTableModel=(DefaultTableModel)roomtable.getModel();
int行=0;
while(行
但我只需要删除房间类型为“Single”的行可能更合适?取消选中复选框时会发生什么情况?:-p可能不会…重新查看图像:-)仅当需要将视图转换为索引时,才需要对索引值和增量进行更多控制models@mKorbel因为只直接处理模型不应该是必需的,如果我使用的是coming the view,那么是的,它将是必需的。我可能错了,但我认为这是一个更好的例子。如果你取消选中复选框怎么办x、 您将如何取回数据?请参见上面的官方教程链接,并参见示例。