對不起,如果這對於大家都是非常簡單的問題,但我遇到了麻煩。我正在嘗試完成一個JavaFX應用程序,而我即將完成。JavaFX Filter TableView當方法在另一個類中時
我無法過濾TableView。我有一個TextField作爲我的搜索輸入和一個按鈕來充當我的「提交」按鈕來搜索。我知道事件監聽器和什麼不適用於TextFields篩選TableView。我不反對這種選擇,但是,我需要按鈕功能。
我有一個MainController類爲我的主舞臺,這就是我住兩個TableViews和搜索輸入字段/按鈕。現在
,該方法被稱爲「lookupProduct(INT ID)」,但是,它是在另一個類:庫存
所以,我的問題是,如何才能讓從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文件? –