java如何使用默认模型表更新和检测复选框
我只是想问,如何检测复选框上的复选框,以及如何更新表或删除复选框的行?我运行了这段代码,它退出了循环,没有输入if-else语句:(
for(int i =table.getRowCount(); i>= 0 ; i++)
{
a = (String)table.getModel().getValueAt(i,1);
boolean getBool = (boolean)table.getModel().getValueAt(i, 6);
if(getBool)
{
JOptionPane.showMessageDialog(null,getBool);
String sql2 = "UPDATE room_record SET Book_status = 'Checked_In' WHERE
Room_Record_ID = '" + a + "'";
statement = conn.prepareStatement(sql2);
statement.executeUpdate(sql2);
((DefaultTableModel) table.getModel()).removeRow(i)
//model2.fireTableDataChanged();
JOptionPane.showMessageDialog(null,"done");
//System.out.println("true");
}
}
# 1 楼答案
创建一个循环来读取TableModel。然后使用:
使用
DefaultTableModel
的removeRow(...)
方法注意:当您在TableModel中循环时,需要从最后一个条目开始,并将索引减少1,直到达到0,这样removeRow()方法将在正确的行上工作
编辑:
你添加了系统吗。出来println(…)语句以确保代码正在执行?这是一种测试逻辑的简单调试技术。由于循环结构不正确,代码无法执行
不能从行计数开始,因为Java从零开始偏移,所以需要使用:
然后我建议你需要
decrement
索引。你为什么使用:这是递增的,不是递减的