JTable更新不到数据,求助。主要想实现JTabel的全选,复选框
在网上找了一个例子,测试一下JTable,发现 table.getModel().setValueAt(b, i, 0);更新不到数据
final MyCheckBoxRenderer check = new MyCheckBoxRenderer();
table.getColumn("Area").setHeaderRenderer(check);
table.getTableHeader().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e){
if(table.getColumnModel().getColumnIndexAtX(e.getX())==0){//如果点击的是第0列,即checkbox这一列
JCheckBox Checkbox = (JCheckBox)check;
boolean b = !check.isSelected();
System.out.println("boolean:" + b);
check.setSelected(b);
table.getTableHeader().repaint();
System.out.println(table.getRowCount());
for(int i = 0;i < table.getRowCount();i++){
System.out.println("i:" + i);
System.out.println(table.getModel().getValueAt(i, 0));
table.getModel().setValueAt(b, i, 0);//把这一列都设成和表头一样
}
}
}
});
class MyCheckBoxRenderer extends JCheckBox implements TableCellRenderer{
public MyCheckBoxRenderer () {
this.setBorderPainted(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
return this;
}