Tableview item dependencies javafx

问题描述:

晚上好,Tableview item dependencies javafx

我正在一个项目上工作,我在迷失在如何配置我的tableviews互相依赖。我希望在一个tableview中的部分依赖于其他产品。我会怎么做呢?我更喜欢暂时不使用sql,只是为了尽可能简单。该代码段如下:

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) -> { 

     }); 


    } 
} 

我不是太肯定PartProduct之间的关系。从上下文来看,我会假设每个具体的Product都有自己的与其相关的Part列表。我还假定Part s的列表存储在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