何をしようとしているのは、ある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はテーブルビュー、 colName2である、などである
問題はアプリが正しくない働いている、ということであるこのtableColumnsです。私はこのメソッドで最初に接続されたボタンを押して、次にTableView 1で行を選択した後にTableView 2に入ります。何が他の行をクリックすることもできますが、それらも追加されます。このボタンのようにこの選択オプションが有効になり、私は単に行を選択し、ボタンをクリックして、別のTableViewでこの行を見たいだけです。次に別のボタンをクリックします。
次の問題は、もう一度ボタンをクリックすると、2番目のTableViewをクリアしてから、もう一度ボタンをクリックすると、選択した項目を2回追加します。それは再びTableViewをクリアし、選択した項目を3回追加します。