В настоящее время я пытаюсь отфильтровать мой список списков FXML, используя несколько ящиков выбора, созданных через конструктор сцен.
Ну, во-первых, я попытался внедрить в свою работу только функцию фильтра, используя текстовое поле вместо использования поля выбора, просто чтобы проверить, работает ли он с моим пользовательским списком и работает ли он.
Но теперь у меня возникают проблемы с выяснением, как реализовать его с несколькими вариантами выбора, а не просто с помощью текстового поля.
Надеюсь, кто-то здесь может дать мне некоторое представление о том, как это сделать, и спасибо.
Это те поля выбора, которые у меня есть
@FXML
private ChoiceBox choiceBox1;
@FXML
private ChoiceBox choiceBox2;
@FXML
private ChoiceBox choiceBox3;
@FXML
private ChoiceBox choiceBox4;
Здесь я реализую фильтр
@Override
public void initialize(URL location, ResourceBundle resources) {
filterField.textProperty().addListener((observable, oldValue, newValue) -> {
filteredData.setPredicate(student -> {
if (newValue == null || newValue.isEmpty()) {
return true;
}
String lowerCaseFilter = newValue.toLowerCase();
if (student.getName().toLowerCase().contains(lowerCaseFilter)) {
return true;
} else if (student.getStatus().toLowerCase().contains(lowerCaseFilter)) {
return true;
}
return false;
});
});
listView.setItems(filteredData);
listView.setCellFactory(studentListView -> new StudentListViewCell());
}