我只是想问一下,如何检查复选框上的复选框以及如何更新表格或删除复选框的行?我运行此代码并退出循环并且没有输入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");
}
}
答案 0 :(得分:2)
如何检测复选框
创建一个循环来读取TableModel。然后使用:
if (model.getValueAt(...).equals(Boolean.TRUE))
// do something
删除复选框的行?
使用removeRow(...)
DefaultTableModel
方法
注意当你遍历TableModel时,你需要从最后一个条目开始并将你的索引递减1,直到你得到0,这样removeRow()方法将适用于正确的行。
编辑:
您是否在循环中添加了System.out.println(...)语句以确保代码正在执行?这是一种简单的调试技术来测试您的逻辑。您的代码不会执行,因为您的循环结构不正确。
int i =table.getRowCount();
您无法从行计数开始,因为Java开始偏移为零,因此您需要使用:
int i =table.getRowCount() - 1;
然后我建议您需要decrement
索引。你为什么用:
i++
这是一个增量,而不是一个减量。