Guten Tag.
ich habe eine CheckListView in der ich gerne CheckBoxListCell einbinden möchte. Dazu habe ich die CellFactory überschrieben. Dies funktioniert auch sehr gut. Allerdings möchte ich nun gerne in der CheckListView einen Listener aktivieren, der auf Änderungen bzw Klicks reagiert. Allerdings funktioniert dies nicht.
Wenn ich allerdings die DefaultCellFactory verwende funktioniert der Listener.
Hier mein Code :
So nun meine Frage, was muss ich machen, damit auch mit dem Custom Factory auch auf Änderungen in der CheckBox reagiert wird.
Vielen Dank für eure Hilfe.
ich habe eine CheckListView in der ich gerne CheckBoxListCell einbinden möchte. Dazu habe ich die CellFactory überschrieben. Dies funktioniert auch sehr gut. Allerdings möchte ich nun gerne in der CheckListView einen Listener aktivieren, der auf Änderungen bzw Klicks reagiert. Allerdings funktioniert dies nicht.
Wenn ich allerdings die DefaultCellFactory verwende funktioniert der Listener.
Hier mein Code :
Java:
@FXML
private CheckListView<ITeam> teamFilter;
Java:
@Override
public void initialize(URL location, ResourceBundle resources) {
teamFilter.getCheckModel().getCheckedItems().addListener(new ListChangeListener<ITeam>() {
public void onChanged(ListChangeListener.Change<? extends ITeam> c) {
filterData();
}
});
teamFilter.setCellFactory(new Callback<ListView<ITeam>, ListCell<ITeam>>() {
@Override
public ListCell<ITeam> call(ListView<ITeam> param) {
CheckBoxListCell<ITeam> cell = new CheckBoxListCell<ITeam>() {
@Override
public void updateItem(ITeam team, boolean empty) {
super.updateItem(team, empty);
if (team != null) {
if (team != null) {
setText(team.getName() + "\n" + team.getCompetition().getName());
}
}
setSelectedStateCallback(item -> item.isSelected());
}
};
cell.selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue,
Boolean newValue) {
cell.getItem().setIsSelected(newValue);
}
});
return cell;
}
});
}
Vielen Dank für eure Hilfe.