2014-10-20 2 views
0

BillingTableRow 유형의 항목이 포함 된 JavaFX TreeTableView로 작업하고 있습니다. BillingTableRow에서 getType() 메서드에 의해 주어진 값을 기반으로하여 열 스타일을 지정하고 싶지만 설정하려고하는 콜백 내부에서 열을 액세스하지 못하는 것 같습니다. 여기 내 코드는 다음과 같습니다 :JavaFX TreeTable에서 변수 가져 오기 CellFactory 콜백

Callback<TreeTableColumn<BillingTableRow, Double>, TreeTableCell<BillingTableRow, Double>> eveningCallback = new Callback<TreeTableColumn<BillingTableRow, Double>, TreeTableCell<BillingTableRow, Double>>() { 
     @Override 
     public TreeTableCell<BillingTableRow, Double> call(TreeTableColumn<BillingTableRow, Double> p) { 
      return new EditableTreeTableDoubleCell() { 
       @Override 
       public void updateItem(Double item, boolean empty) { 
        super.updateItem(item, empty); 

        BillingTableRow row = (...)// Get attached BillingTableRow for current tree table row. 
        if (row.getType() == 0) { 
         setText(null); 
        } 

       } 
      }; 
     } 
    }; 
    eveningColumn.setCellFactory(eveningCallback); 

작동하게하려면 어떻게해야합니까?

답변

1

사용

BillingTableRow row = getTreeTableRow().getItem();

모두 TableCell

TreeTableCell는 현재 셀이 속한 전체 행을 표시하는 셀을 제공하는 tableRow 속성을 정의합니다. TreeTableCell<S,T>의 경우 getTreeTableRow()Cell<S>의 하위 클래스 인 TreeTableRow<S>을 반환합니다. 즉, 반환 유형이 SgetItem() 메소드, 즉 전체 행에 대한 데이터를 나타내는 항목이 있음을 의미합니다.