У меня проблема с моим Java-приложением в отношении метода ниже:
private void clearFields() {
this.clientComboBox.getSelectionModel().clearSelection();
this.segmentComboBox.getSelectionModel().clearSelection();
this.releaseDatePicker.getEditor().clear();
this.titleTextField.clear();
this.priceTextField.clear();
this.basepriceTextField.clear();
this.descTextArea.clear();
this.vinTextField.clear();
this.daysSlider.setValue(1);
}
Когда я пытаюсь добавить автомобиль, проблем нет, программа работает отлично.
Но когда я пытаюсь выбрать опцию редактирования, после сохранения изменений каждый столбец для отредактированной строки становится пустым, что я делаю неправильно?
ссылка на мой репо: https://github.com/tomekcm4/wypozyczalnia.git
очевидно, что-то не так с этой частью:
this.editColumn.setCellFactory(param -> new TableCell<CarFx, CarFx>() {
Button button = createButton("/icons/edit.png");
@Override
protected void updateItem(CarFx item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
return;
}
if (!empty) {
setGraphic(button);
button.setOnAction(event -> {
FXMLLoader loader = FxmlUtils.getLoader("/fxml/AddCar.fxml");
Scene scene = null;
try {
scene = new Scene(loader.load());
} catch (IOException e) {
DialogsUtils.errorDialog(e.getMessage());
}
CarController controller = loader.getController();
controller.getCarModel().setCarFxObjectProperty(item);
controller.bindings();
Stage stage = new Stage();
stage.setScene(scene);
stage.initModality(Modality.APPLICATION_MODAL);
stage.showAndWait();
});
}
}
});
}
кнопка сохранения выглядит так:
public void addCarOnAction() {
try {
this.carModel.saveCarInDataBase();
clearFields();
} catch (ApplicationException e) {
DialogsUtils.errorDialog(e.getMessage());
}
}