2012-08-14 4 views
5

JTable의 열에 boolean 값이 7 개 있습니다. 내 bean에 바인딩하고 싶습니다.JTable에서 boolean을 JGoodies와 바인딩하는 방법

어떻게 바인딩합니까?

모든 바인딩 예제는 테이블 선택 바인딩에 초점을 맞추지 만, 그 값이 무엇인지 신경 쓰지 않습니다. booleans.

+0

잘 모르겠다 - 그 부울은 다른 콩 (일명 : 행)에 있습니까? 그렇다면 bean/s에 직접 바인딩하십시오 ... – kleopatra

+0

행이나 열에 7 개의 부울 값이 있음을 의미합니까? 그 행에 있다면, 당신은 7 부울 속성과 콩을 정의하고 각 열에 각 속성을 바인딩 할 수 있습니다. 그것의 열, 나는 그것이 무엇을 의미 모르겠어요. 기본적인 것은 각 행이 빈을 나타내는 것입니다. 따라서 열에있는 7 가지 부울 값은 7 가지 다른 콩을 의미합니다. –

+0

JTables는 값을 Object로 저장하므로 다른 값 유형을 바인드하는 것과 같은 방식으로 부울 값을 바인딩 할 수 있습니다. – Felype

답변

1

사용자 고유의 데이터 모델을 구현해야합니다. 사용법을 보여주는 단순화 된 예제를 제공합니다. getColumnClass 메소드를 살펴 보자.

사용법 : table.setModel (new DataModel (myData));

class DataModel extends AbstractTableModel 
{ 


    public DataModel(Object yourData){ 
     //some code here 
    } 

    @Override 
    public int getRowCount() { 
     return yourData.rows; 
    } 

    @Override 
    public int getColumnCount() { 
     return yourData.colums; 
    } 

    @Override 
    public Class<?> getColumnClass(int col) { 
     if (col == myBooleanColumn) { 
      return Boolean.class; 
     } else { 
      return null; 
     } 
    } 

    @Override 
    public boolean isCellEditable(int row, int col) 
    { 
     return col >= 0; 
    } 

    @Override 
    public Object getValueAt(int rowIndex, int columnIndex) { 

     return yourData.get(rowIndex,columnIndex); 
    } 

    @Override 
    public void setValueAt(Object aValue, int row, int col) {   

    yourData.set(aValue,row,col)  

     this.fireTableCellUpdated(row, col); 
    } 
} 

희망이 있습니다.

관련 문제