我有一个允许打开分离窗口的JavaFx应用程序。分离的窗口是从fxml文件加载的。在fxml中有一个包含列的表。当一个窗口关闭时(阶段关闭相当于阶段隐藏)我的窗口控制器对象仍然存活,因为一些与表格单元格相关联的回调引用。 回调与单元格关联如下:
@FXML
private TableColumn<MyModel, Boolean> colImage;
// ...
colImage.setCellFactory(new Callback<TableColumn<MyModel, Boolean>, TableCell<MyModel, Boolean>>() {
@Override
public TableCell<MyModel, Boolean> call(
final TableColumn<MyModel, Boolean> btnCol) {
final TableCell<MyModel, Boolean> cell = new TableCell<MyModel,Boolean>() {
@Override
public void updateItem(final Boolean ack,
final boolean empty) {
super.updateItem(ack, empty);
if (ack != null) {
if (ack) {
final ImageView colIconNew = buildIconImageView(
ICON_CHECKED, generalImageLookup);
setGraphic(colIconNew);
} else {
setGraphic(null);
}
} else {
setGraphic(null);
}
}
};
cell.setAlignment(Pos.CENTER);
return cell;
}
});
窗口关闭动作后有没有办法删除这些引用?我尝试在关闭操作后设置一个空回调:
colImage.cellFactoryProperty().set(null);
但它没有用。 有什么想法吗?
非常感谢。