선택 상자를 사용하여 테이블 뷰의 특정 데이터를 표시하려고합니다. 내가 테이블 뷰에 "name" "Price" "Category" "Stock"라는 4 개의 열을 가지고 있다고 가정 해 보겠습니다. 내 tableview는 .txt 문서에서 데이터를 가져오고, 내 GUI에서 텍스트 필드를 통해 데이터를 추가 할 수 있습니다. My choicebox는 "Category 1" "Category 2" "Category 3"값을 보유하고 있으며 내 tableview는 6 행 3 행에 카테고리 2가있는 데이터를 보유하고 있습니다.ChoiceBox를 사용하여 TableView JavaFX의 특정 데이터 표시
내가 원하는 것 할 일은, 내 선택 상자에서 카테고리 1을 선택하면 내 tableview는 카테고리 1의 데이터 만 표시해야합니다. 나는 완전히 잃어버린다.
내 코드.
private TableView<DTOArt> table = new TableView<DTOArt>();
private ObservableList<DTOArt> data = FXCollections.observableArrayList();
private ObservableList filCat = FXCollections.observableArrayList("Category 1","Category 2","Category 3");
public VBox getTableView(){
VBox tabelView = new VBox();
tabelView.setSpacing(5);
tabelView.setPadding(new Insets(10,10,10,10));
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
table.setEditable(true);
TableColumn nameCol = new TableColumn("Name");
nameCol.setCellValueFactory(new PropertyValueFactory<DTOArt, String>("name"));
TableColumn priceCol = new TableColumn("Price");
priceCol.setCellValueFactory(new PropertyValueFactory<DTOArt, String>("price"));
TableColumn categoryCol = new TableColumn("Category");
categoryCol.setCellValueFactory(new PropertyValueFactory<DTOArt, String>("category"));
TableColumn inStockCol = new TableColumn("in Stock");
inStockCol.setCellValueFactory(new PropertyValueFactory<DTOArt, String>("inStock"));
table.setItems(data);
table.getColumns().addAll(nameCol,priceCol,categoryCol,inStockCol);
tabelView.getChildren().add(table);
return tabelView;
}
My choiceBox.
ChoiceBox categoryCB = new ChoiceBox();
categoryCB.setItems(filCat);
categoryCB.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>(){
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue){
}
});