これは本当にあなたのためのすべての簡単な質問は申し訳ありませんが、私は問題を抱えています。私はJavaFXアプリケーションを完成させようとしています。メソッドが別のクラスにあるときのJavaFXフィルタTableView
TableViewのフィルタリングに問題があります。私は検索入力としてTextFieldを持っていて、検索のための "Submit"ボタンとして機能するボタンを持っています。私はイベントリスナーを認識しており、TextFieldsがTableViewをフィルタリングすることはできません。私はそのオプションに反対していませんが、私はボタンの機能が必要です。
私はメインステージ用のMainControllerクラスを持っています。これは、2つのTableViewと検索入力フィールド/ボタンを格納する場所です。
さて、この方法は、「lookupProduct(int型のID)」と呼ばれますが、それは別のクラスである:インベントリ
だから、私の質問は、私は方法にメインコントローラから電話をかけることができる方法であり、インベントリクラスを作成し、その方法で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);
}
}
あなたが提供することができますどのような援助、指導、助言、非常に理解されるであろう。ありがとうございました!この問題を解決するには
にテーブルの上にFilteredList項目を設定することができましたか?とにかく 'MainController'に必要なものがあるようです。 –
私はあなたが 'MainController'のインスタンス変数を持っていないと仮定しています。なぜそれが動作していないのですか? –
これらがコントローラであるFXMLファイルのそれぞれをどこにロードしていますか? –