JTable里设置一列为JCheckBox,可以操作的是同一个对象,当第一行被选中,在点第二行,则第一行取消选中,第二行被选中。这是操作的同一个对象导致,请问达人如果写TableCellRenderer和DefaultCellEditor
希望给出代码,谢谢

解决方案 »

  1.   

    这应该是楼主没有fireTableDataChanged()所致。
      

  2.   

    class RadioButtonRenderer extends    JCheckBox
                                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
      

  3.   

    LZ的做法好像有点问题:
    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
      

  4.   

    to: BeShrek(今晚打老虎) 还是不能完全区分开..郁闷列
      

  5.   

    请问怎么给你?你的QQ号或者MSN?
      

  6.   

    按你这样的写法,那Jcheckbox的事件应该怎么添加呢?
      

  7.   

    是不是下面的SelectionDebugger类?