Что я пытаюсь сделать, это скопировать выбранную строку в один TableView в другой TableView.JavaFX передает данные из одного 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, и т.д. TableColumns
Проблема заключается в том, что приложение работает не правильно. Сначала я должен нажать кнопку, связанную с этим методом, а затем, после выбора строки в TableView 1, я получаю в TableView 2. Что еще, я могу щелкнуть несколько других строк, и они тоже будут добавлены. Подобно этой кнопке эта опция выбора и я хочу просто выбрать строку, нажать кнопку, увидеть эту строку в другом TableView. Затем я хочу выбрать еще один, снова нажать кнопку и т. Д.
Следующая проблема заключается в том, что, как только я снова нажимаю кнопку, она очищает второй TableView и теперь добавляет выбранные элементы дважды, если я снова нажимаю кнопку , он снова очищает TableView и теперь добавляет выделенный элемент 3 раза и т. д.