Прошу прощения, если это действительно простой вопрос для всех вас, но у меня проблемы. Я пытаюсь выполнить приложение JavaFX, и я почти готов.JavaFX Filter TableView, когда метод находится в другом классе
У меня возникли проблемы с фильтрацией TableView. У меня есть TextField как мой вход для поиска и кнопка, чтобы действовать как моя кнопка «Отправить» для поиска. Я знаю слушателей событий и что не для TextFields для фильтрации TableView. Я не против этого варианта, но мне нужна функциональность кнопок.
У меня есть класс MainController для моей основной сцены, и именно там я размещаю два табличных элемента и кнопку ввода/ввода.
Теперь метод называется «lookupProduct (интермедиат идентификатор)», но это в другом классе: Инвентарь
Итак, мой вопрос, как я могу сделать звонок от MainController методы в Класс инвентаризации и таким образом фильтровать TableView? Прости. Я не могу отправлять код, но я могу представить как можно более хороший пример.
ContainsMethod.java
private MainController mainController;
.....
void lookUpProduct(int id){
FilteredList<Product> filteredList = new FilteredList<Product>(maincontroller.productsTableView.getItems());
filteredList.stream()
.filter(item -> item.getName() == name)
.findAny()
.ifPresent(item -> {
maincontroller.productsTableView.getSelectionModel().select(item);
maincontroller.productsTableView.scrollTo(item);
});
maincontroller.productsTableView.setItems(filteredList);
}
MainController.java
@FXML
private void handleLookupProduct(ActionEvent event) {
Inventory inv = new Inventory();
String searchText = productsSearchInput.getText();
if (searchText.length() != 0) {
inv.lookupProduct(searchText);
} else {
AlertBox.display("WAIT!", "Please enter a value to search!", 450);
}
}
Любая помощь, рекомендации, предложения вы можете предоставить, будет очень цениться. Спасибо!
Вы можете просто переместить 'lookUpProduct' в' MainController'? Похоже, все, что нужно, в «MainController» в любом случае. –
Я предполагаю, что у вас нет переменной экземпляра 'MainController', и поэтому она не работает. –
Где вы загружаете каждый из файлов FXML, для которых они являются контроллерами? –