我想删除通过按钮在jtable中选中其复选框的行(单个或多个)但它无法正常工作..这是抛出异常..这里是代码..
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
for (int i=0;i<model.getRowCount();i++) {
Boolean checked=(Boolean)model.getValueAt(i,7);
if (checked) {
model.removeRow(i);
i--;
}
}
}
答案 0 :(得分:1)
这是因为如果没有选择组合框,你将null
而不是false
。为了避免这种情况,你可以先检查是否为空
DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
for (int i=0;i<model.getRowCount();i++) {
Boolean checked=(Boolean)model.getValueAt(i,7);
if (checked!=null && checked) {
model.removeRow(i);
i--;
}
}
答案 1 :(得分:0)
尝试以下降方式迭代:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
for (int i=model.getRowCount();i<0;i--) {
Boolean checked=(Boolean)model.getValueAt(i-1,7); // Checkbox is in 7th column?
if (checked) {
model.removeRow(i-1);
}
}
}
答案 2 :(得分:0)
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel tm= (DefaultTableModel) jTable1.getModel();
for (int i=0;i<tm.getRowCount();i++) {
Boolean checked=(Boolean)model.getValueAt(i,0);
if (checked!=null && checked) {
tm.removeRow(i);
i--;
}
}
}