2017-01-30 2 views
0

Не знаю, почему флажок для одного из столбцов отключен, хотя по. код с этой страницей.CheckBox по умолчанию отключен в TreeTableView

http://o7planning.org/en/11149/javafx-treetableview-tutorial#a3985429

Это мой результат :: Там нет возможности их выбора.

TreeTableColumn<MessageOnTable, Boolean> deleteCol 
       = new TreeTableColumn<MessageOnTable, Boolean>("Delete"); 
deleteCol.setCellValueFactory(new TreeItemPropertyValueFactory<MessageOnTable, Boolean>("delete")); 

     deleteCol.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<MessageOnTable, Boolean>, // 
         ObservableValue<Boolean>>() { 

      @Override 
      public ObservableValue<Boolean> call(TreeTableColumn.CellDataFeatures<MessageOnTable, Boolean> param) { 
       TreeItem<MessageOnTable> treeItem = param.getValue(); 
       MessageOnTable emp = treeItem.getValue(); 
       SimpleBooleanProperty booleanProp= new SimpleBooleanProperty(emp.isDelete()); 

       // Note: singleCol.setOnEditCommit(): Not work for 
       // CheckBoxTreeTableCell. 
       // When "Single?" column change. 
       booleanProp.addListener(new ChangeListener<Boolean>() { 

        @Override 
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, 
             Boolean newValue) { 
         emp.setDelete(newValue); 
        } 
       }); 
       return booleanProp; 
      } 
     }); 

     deleteCol.setCellFactory(new Callback<TreeTableColumn<MessageOnTable,Boolean>,TreeTableCell<MessageOnTable,Boolean>>() { 
      @Override 
      public TreeTableCell<MessageOnTable,Boolean> call(TreeTableColumn<MessageOnTable,Boolean> p) { 
       CheckBoxTreeTableCell<MessageOnTable,Boolean> cell = new CheckBoxTreeTableCell<MessageOnTable,Boolean>(); 
       cell.setAlignment(Pos.CENTER); 
       return cell; 
      } 
     }); 

     treeTableView.getColumns().addAll(senderCol, topicCol, contentsCol, deleteCol); 
+0

Я не могу сделать какой-либо смысл из вашего вопроса. Что делает ваш код? Что делать? Пожалуйста, также укажите [минимальный пример] (http://stackoverflow.com/help/mcve), чтобы мы могли попробовать. – Nash

ответ

0

Вам нужно удалить:

deleteCol.setCellValueFactory(
    new TreeItemPropertyValueFactory<MessageOnTable, Boolean>("delete")); 

Просто нужна эта строка:

deleteCol.setCellValueFactory(new Callback .... 
Смежные вопросы