2017-04-02 2 views
0

안녕하세요,테이블 뷰 항목 종속성 javafx

프로젝트 작업 중입니다. 서로 의존하여 테이블 뷰를 구성하는 방법에 대해 분실했습니다. 한 tableview의 부품이 다른 제품의 tableview에 의존하고 싶습니다. 그 일을 어떻게 하죠? 나는 모든 것을 가능한 단순하게 유지하기 위해 순간에 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

관련 문제