У меня в настоящее время проблема с установкой CheckBoxTableCell из FXML. Я попытался преобразовать этот код в FXML:Установить CheckBoxTableCell в FXML
tableCol.setCellValueFactory(new PropertyValueFactory<Product, Boolean>("property"));
tableCol.setCellFactory(CheckBoxTableCell.forTableColumn(toStockCol));
где «свойство» является лишь некоторыми атрибутами «продукт» класса (от типа «логического»). Этот код работает отлично. Теперь я пытаюсь установить это в FXML, как это:
<TableColumn text="Some Col">
<cellValueFactory><PropertyValueFactory property="property" /></cellValueFactory>
<cellFactory><CheckBoxTableCell editable="true" /></cellFactory>
</TableColumn>
Это не работает, я получаю следующее сообщение об ошибке (что является FXML LoadExeption):
Caused by: java.lang.IllegalArgumentException: Unable to coerce [email protected][styleClass=cell indexed-cell table-cell check-box-table-cell]'null' to interface javafx.util.Callback.
at com.sun.javafx.fxml.BeanAdapter.coerce(BeanAdapter.java:495)
at com.sun.javafx.fxml.BeanAdapter.put(BeanAdapter.java:258)
at com.sun.javafx.fxml.BeanAdapter.put(BeanAdapter.java:54)
at javafx.fxml.FXMLLoader$PropertyElement.set(FXMLLoader.java:1409)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:786)
at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2827)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2536)
... 42 more
Я не могу понять что я делаю неправильно. Кроме того, на мой взгляд, практически нет документации о том, как установить CheckBox в TableView с FXML.
Примечание: Я хотел бы установить это из FXML, потому что это, кажется, место для этого. Я знаю, что это можно сделать с помощью контроллера FXML. Кроме того, мне просто интересно.
Любая помощь очень ценится!