JTable里设置一列为JCheckBox,可以操作的是同一个对象,当第一行被选中,在点第二行,则第一行取消选中,第二行被选中。这是操作的同一个对象导致,请问达人如果写TableCellRenderer和DefaultCellEditor
希望给出代码,谢谢
希望给出代码,谢谢
解决方案 »
- 高手进。
- 求一java正则表达式,只能输入0-120之间的数字
- http post体中的信息如何读取
- 请问JAVA编程思想第四版怎么样?
- 在Java中使用观察者模式时,Observable的方法notifyObservers(Object arg)的问题
- 我想在任意的目录下都能使用javac abc,java abc这样的省略路径形式,怎么设置环境变量?
- 求教:关于内部类
- java 的 eclipse 打不开 ,这些个截图如下
- 求解:有一个jar文件,我用什么解开它,使他展开,然后在运行?
- 如何删除在某个路径下的文件?例如
- 在线等 panel清空后再添加控件为什么添加不上
- Java连接数据库的问题
implements TableCellRenderer {
RadioButtonRenderer() {
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JCheckBox check = new JCheckBox();
check.setSelected(isSelected);
fireTableDataChanged();
return check;
}
} class RadioButtonEditor extends DefaultCellEditor { public RadioButtonEditor(JCheckBox check) {
super(check);
} public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
JCheckBox check = new JCheckBox();
check.setSelected(isSelected);
fireTableDataChanged();
return check;
} public Object getCellEditorValue() {
return "";
}
}上面代码是我的TableCellRenderer和DefaultCellEditor
1. 表格中的内容与某个Model相关联,TableCellRenderer只是用来现实数据,一般来说,
这个函数最好这样写:
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if(value instanceof YOUR_OBJ){ //判断一下你的数据类型
this.setSelected(true); //根据情况设置当前的JCheckBox
//这里只是显示数据,不需要fireTableDataChanged();}
return this;
}2.修改model中的内容之后,比如说其中的某一个YOUR_OBJ,在这里调用fireTableDataChanged()来通知后台重新渲染Table