2013.01.15 16:16

JavaFX Table 컬럼 헤더에 체크박스 넣기

SWT 때부터 테이블 UI 를 만들때마다 고민거리가 되었던 테이블 헤더에 체크박스를 넣는 방법을 알아보자.

 

 

 

1. 먼저 컬럼에 setGraphic 으로 체크박스를 새로 생성해 준다.

 

column.setGraphic(new CheckBox());

 

2. 이벤트 핸들러를 만들어서 체크시마다 list 또는 데이터의 추가 삭제 하는 이벤트를 생성한다.

 

EventHandler<ActionEvent> handler = new EventHandler<ActionEvent>() {

       
@Override
       
public void handle(ActionEvent event) {

CheckBox cb = (CheckBox) event.getSource();
           
TableColumn column = (TableColumn) cb.getUserData();
           
if (cb.isSelected()) {
                lstClm
.add(column);
           
} else {
                lstClm
.remove(column);
           
}
           
for (TableColumn clm : lstClm) {
               
System.out.println("selected column: " + clm.getText());
           
}
       
}
   
};

3. 체크박스를 생성하여 핸들러를 set 한다.

 

    CheckBox cb = new CheckBox();
    cb
.setUserData(firstDataColumn);
    cb
.setOnAction(handler);
    firstDataColumn
.setGraphic(cb);

 

Trackback 0 Comment 0