2017-04-02 12 views
0

こんばんは、テーブルビューの項目はJavaFXの

私はプロジェクトに取り組んでいますが依存関係と私はお互いに依存するように私のtableviewsを設定する方法で失わでね。 1つのテーブルビュー内の部品が他のテーブルビューの製品に依存するようにしたいと思います。それをどうやってやりますか?私は現時点ではできるだけシンプルなものをすべてシンプルに保つためにsqlを使用しないことを好みます。私はPartProductとの関係についてあまりよく分からない

public class maincontroller { 

private ObservableList<Part> parts = FXCollections.observableArrayList(); 

private ObservableList<Product> products = FXCollections.observableArrayList(); 

//code to swap between controllers 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 

     partsID.setCellValueFactory(new PropertyValueFactory<>("partID")); 
     partsName.setCellValueFactory(new PropertyValueFactory<>("name")); 
     partsinvlevel.setCellValueFactory(new PropertyValueFactory<>("instock")); 
     partscost.setCellValueFactory(new PropertyValueFactory<>("price")); 
     parttable.setItems(parts); 

     productsID.setCellValueFactory(new PropertyValueFactory<>("productID")); 

     productsName.setCellValueFactory(new PropertyValueFactory<>("name")); 
     productsInvlevel.setCellValueFactory(new PropertyValueFactory<>("instock")); 
     productsprice.setCellValueFactory(new PropertyValueFactory<>("price")); 
     producttable.setItems(products); 


     parttable.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends Part> observable, Part oldValue, Part newValue) -> { 


     }); 


     producttable.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends Product> observable, Product oldValue, Product newValue) -> { 

     }); 


    } 
} 

答えて

0

:コードスニペットは、下に表示されます。文脈から、私はそれぞれの具体的なProductがそれに関連するPartのそれ自身のリストを持っていると仮定します。また、PartのリストはProductに格納されているとします。

製品:

public class Product 
{ 
    private final ObservableList<Part> parts = FXCollections.observableArrayList(); 
    public final ObservableList<Part> getParts() { return parts; } 
    ........ 
} 

は、これはあなたが何ができるかです:

producttable.getSelectionModel().selectedItemProperty().addListener(observable, oldProduct, newProduct) -> 
{ 
    if (newProduct != null) 
    { 
     parts.clear(); 
     parts.addAll(newProduct.getParts()); 
    } 
}); 
+0

ありがとうございました!これは、部品と製品が互いに依存するようにするための適切なアプローチを知らなかったために私を悩ましていました。つまり、ユーザーはパートAの情報を入力し、ユーザーは製品情報を別のテーブルに入力します。ユーザーがパーツAを削除すると、製品情報も削除されます。もう一度お世話になりました! – CBZ

関連する問題