我試圖做的是將一個TableView中的選定行復制到另一個TableView中。JavaFX將數據從一個TableView傳遞到另一個TableView
public void addMeal()
{
products2 = FXCollections.observableArrayList();
tableProduct.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<productData>() {
@Override
public void changed(ObservableValue<? extends productData> observable, productData oldValue, productData newValue) {
products2.add(new productData(newValue.getName(), newValue.getKcal(), newValue.getProtein(), newValue.getCarb(), newValue.getFat()));
}
});
colProduct2.setCellValueFactory(new PropertyValueFactory<productData, String>("name"));
colKcal2.setCellValueFactory(new PropertyValueFactory<productData, String>("kcal"));
colProtein2.setCellValueFactory(new PropertyValueFactory<productData, String>("protein"));
colCarbs2.setCellValueFactory(new PropertyValueFactory<productData, String>("carb"));
colFat2.setCellValueFactory(new PropertyValueFactory<productData, String>("fat"));
tableProduct2.setItems(products2);
}
產品2是ObservableList,他們 tableProduct2是的TableView, colName2等都是TableColumn來
問題是,應用程序工作正常不。我必須先按下與此方法連接的按鈕,然後在TableView 1中選擇行之後,我才能使用TableView 2.另外,我可以單擊其他幾行,然後它們也將被添加。它就像這個按鈕啓用這個選擇選項,我想要的只是選擇行,單擊按鈕,在另一個TableView中看到這一行。然後我想選擇另一個,再次點擊按鈕等。
接下來的問題是,一旦我再次單擊按鈕,它清除第二個TableView,從現在開始,他將添加選定的項目兩次,如果我再次單擊按鈕,它再次清除TableView,現在它添加選定的項目3次,等等...