2016-03-27 3 views
0

ObservableList項目をフィルタリングして、xの規則に従ってTableView内の一部のみを表示しようとしています。これを行うには、データをフィルタリングするメソッドがあるDatabase.classがありますが、これらのメソッドをControllerクラスでどのように使用できるかわかりません。フィルターでObservableList項目をコントローラーに。

はここ

package es.upv.inf; 

import java.util.List; 
import java.util.Map; 

public class Database { 

    private static Map<Product.Category, List<Product>> catalog; 

    public Database() { 
     //Compiled Code 
    } 

    public static List<Product> getProductByCategory(Product.Category cat) { 
     //Compiled Code 
    } 

    public static List<Product> getProductByCategoryAndPrice(Product.Category cat, double minPrice, double maxPrice, boolean available) { 
     //Compiled Code 
    } 

    public static List<Product> getProductByCategoryAndDescription(Product.Category cat, String substring, boolean available) { 
     //Compiled Code 
    } 

    public static List<Product> getProductByCategoryDescriptionAndPrice(Product.Category cat, String substring, double minPrice, double maxPrice, boolean available) { 
     //Compiled Code 
    } 
} 
+1

* ObservableListをリストに隠す*なぜですか?それは既に 'List'です。あなたが達成したいことをより明確にしてください。これは、私が何が起こっているのかを理解するのに十分なコードではありません。 –

+0

@ YassinHajaj問題は現在よく指定されていますか? –

+0

データベースクラスは実際にデータをフィルタリングしません。それはそれを提供する。データをフィルタリングするメソッドは、パラメータとしてリストを取得します。 –

答えて

0

だけで観測可能リストにsetAllを使用した.classです。あなたが任意のコードを提供していないが、あなたはFilteredListを作成するためにObseravbleリストを使用し

TableView<Product> table = new TableView<>(); 

// ... 

table.getItems().setAll(Database.getProductByCategory(...)); 
+0

なぜdownvote? –

0

のようなメソッドを呼び出し、setItemsを経由してテーブルビューにFilteredListをインストールすることができ()。次に、FilteredListの述語プロパティを操作すると、テーブルの内容が変更されます。

関連する問題