Datepicker
のvalueProperty
をtextProperty
のLabel
にバインドしようとしています。 日付が選択され、Label
"db"に格納されている場合、エラーはないと解析されます。空のDatepickerフィールドのバインド
しかし、ラベルデシベルが空の場合、それはエラーを与える:
java.time.format.DateTimeParseException: Text '' could not be parsed at index 0
私はラベル「DB」は、空または値である場合は、両方のケースで日付を解析できるようにしたいです。
ここに私が解析するために使用する更新されたコードがあります。
tableviewController
tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Employee>(){
FXMLLoader loader=new FXMLLoader(getClass().getResource("view.fxml"));
try{
Parent newParent=loader.load();
viewController sunController=loader.getController();
subController.textToDisplay.set(newValue.getDateOfBirth());
Stage stage =new Stage();
Scene scene =new Scene(newParent);
stage.setScene(scene);
のViewController
@FXML private Label db;
public SimpleStringProperty textToDisplay=new SimpleStringProperty("");
private static final DateTimeFormatter DATE_FORMATTER=DateTimeFormatter.ofPattern(dd/MM/yyyy);
public void update()throws IOeXCEPTION{
FXMLLoader loader=new FXMLLoader(getClass().getResource("update.fxml"));
try{
Parent newParent=loader.load();
updateController sunController=loader.getController();
subController.textToDisplay.set(LocalDate.parse(db.getText(), DATE_FORMATTER));
Stage stage =new Stage();
Scene scene =new Scene(newParent);
stage.setScene(scene);
}
@Override
public void initialize(URL location,ResourceBundle resources){
db.textProperty().bindBidirectional(textToDisplay);
}
}
updatebController.java
@FXML private DatePicker dateOfBirth;
public SimplObjectProperty<LocalDate>textToDisplay=new SimpleObjectProperty<>();
@Override
public void initialize(URL location,ResourceBundle resources){
dateOfBirth.valueProperty().bindBidirectional(textToDisplay);
}
}
私はラベルのDBが空の場合でも、日付を解析できるようにしたい
のみ上記のコードLable dbに値がある場合に機能します。 Plsヘルプ。日付ピッカーとラベルの間の結合を、あなたは内蔵のLocalDateStringConverterを使用する可能性があるため
私はJavaFXのを知らないので、私はこの意志を言うことができません十分なはずですが、解析を試みる前に 'db.getText()'の内容をテストするのがよいでしょう。 '!db.getText()。isEmpty()'の場合にのみ、ディスプレイの 'set'メソッドを呼び出します。 – Aaron
@Aaronありがとうございます。 – Helen