Я использую DatePicker, чтобы получить LocalDate, а затем преобразовать в String. Но каждый раз я пытаюсь получить год, месяц и дни из DatePicker, а затем использую их в качестве параметров в конструкторе LocalDate. Программа дала сбой. Если я просто вручную набираю год, месяц и день в конструкторе LocalDate, он отлично работает в TableView
@Override
public void initialize(URL url, ResourceBundle rb)
{
roomTypeChoice.setValue("Select");
roomTypeChoice.setItems(roomTypeList);
//setting the cell of each Column that propertyValueFactory should make sure that
//the variable name should be consisted with memeber variable name otherwise the tableview can not
//display the value
firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));
lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));
checkInCol.setCellValueFactory(new PropertyValueFactory<>("checkInDate"));
checkOutCol.setCellValueFactory(new PropertyValueFactory<>("checkOutDate"));
phoneCol.setCellValueFactory(new PropertyValueFactory<>("phoneNumber"));
addressCol.setCellValueFactory(new PropertyValueFactory<>("address"));
emailCol.setCellValueFactory(new PropertyValueFactory<>("email"));
}
@FXML
private void checkIn(ActionEvent event)
{
//get the Check in date convert to Date Object from DatePicker
LocalDate checkInLocalDate=LocalDate.of(checkInDatePicker.getValue().getYear(), checkInDatePicker.getValue().getMonthValue(), checkInDatePicker.getValue().getDayOfMonth());
String checkInDate=checkInLocalDate.toString();
System.out.println(checkInLocalDate.toString()+"");
Customer customer=new Customer(firstNameTextField.getText().trim(),lastNameTextField.getText().trim(),checkInDate,checkInDate
,phoneTextField.getText().trim(),addressTextField.getText().trim(),emailTextField.getText().trim());
tableView.getItems().add(customer);
}
Я надеюсь избавиться от этой проблемы, которая меня сильно раздражает.




Попробуйте с этим
LocalDate localDate = checkInDatePicker.getValue();
int day = localDate.getDayOfMonth();
int month = localDate.getMonthValue();
int year = localDate.getYear();
Могу я спросить, почему вы создаете
LocalDateиз значений другого? ЭкземплярыLocalDateнеизменяемы, что делает копирование ненужным. И не могли бы вы предоставить минимальный воспроизводимый пример, демонстрирующий проблему? Включите трассировку стека исключения в свой вопрос.. Я не могу воспроизвести проблему, используя OpenJDK 12 с JavaFX 12, хотя без фактической ошибки я не уверен, в чем проблема.