2012-10-19 6 views
0

테이블 모델은 다음과 같습니다. 내 테이블의 첫 번째 coloumn 확인란입니다. 체크 박스를 jtable에 넣을 수는 있지만 체크 박스를 클릭하면 아무것도하지 않습니다. 내 테이블에 체크 박스를 넣으려면 DefaultTableCellRenderer을 사용했습니다.jtable의 jcheckbox가 그것을 클릭 할 때 아무런 도움이되지 않습니다. 도움이 필요하십니까

public class MyTableModel implements TableModel { 

    ArrayList<PersonDTO> list=new ArrayList<PersonDTO>(); 

    String headerName[]={"checkbox","student_id","name"}; 

    public MyTableModel(ArrayList<PersonDTO> list) { 
     this.list=list; 
    } 


    @Override 
    public int getRowCount() { 
     //throw new UnsupportedOperationException("Not supported yet."); 
     System.out.println(list.size()); 
     return list.size(); 

    } 

    @Override 
    public int getColumnCount() { 
     //throw new UnsupportedOperationException("Not supported yet."); 
     // System.out.println(headerName.length); 
     return headerName.length; 
    } 

    @Override 
    public String getColumnName(int columnIndex) { 
     //throw new UnsupportedOperationException("Not supported yet."); 
     // System.out.println(headerName); 
     return headerName[columnIndex]; 


    } 

    @Override 
    public Class<?> getColumnClass(int columnIndex) { 
     //throw new UnsupportedOperationException("Not supported yet."); 
     switch(columnIndex) 
     { 
      case 0: 
       return JCheckBox.class; 
       //return JCheckBox.class; 
      case 1: 
       return Integer.class; 
      case 2: 
       return String.class; 


     } 
     return null; 
    } 

    @Override 
    public boolean isCellEditable(int rowIndex, int columnIndex) { 
     // throw new UnsupportedOperationException("Not supported yet."); 
     return true; 

    } 

    @Override 
    public Object getValueAt(int rowIndex, int columnIndex) { 
     //throw new UnsupportedOperationException("Not supported yet."); 
     PersonDTO personDTO=list.get(rowIndex); 
     switch(columnIndex) 
     { 
      case 0: 
       //System.out.println(personDTO.isCheckbox()); 
       return personDTO.getCheckBox(); 
       //return new JCheckBox(); 

      case 1: 
       //System.out.println(personDTO.getName()); 
       return personDTO.getUserId(); 
      case 2: 
       return personDTO.getName(); 


     } 
     return null; 
    } 

    @Override 
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) { 
     //throw new UnsupportedOperationException("Not supported yet."); 

    } 

    @Override 
    public void addTableModelListener(TableModelListener l) { 
     // throw new UnsupportedOperationException("Not supported yet."); 
    } 

    @Override 
    public void removeTableModelListener(TableModelListener l) { 
     //throw new UnsupportedOperationException("Not supported yet."); 
    } 

} 
+0

그냥이 링크를 확인 .. [1] : http://stackoverflow.com/questions/11328451/setting-jcheckbox-invisible-in-jtable 당신은 당신의 JTable의 열 속성을 확인 –

+0

, 그 열이 편집 가능하지 않습니까 ?? ... 필드가 편집 가능하지 않으면 편집 가능으로 변경 될 수 있습니다. 그런 다음 문제를 해결할 수 있습니다. –

답변

1

확인란 열에 부울 클래스를 사용합니다.

public Class<?> getColumnClass(int columnIndex) { 
switch(columnIndex) 
{ 
    case 0: 
     // return JCheckBox.class; 
      return Boolean.class; 
    case 1: 
     return Integer.class; 
    case 2: 
     return String.class; 
} 
    return null; 
}