Понадобилось некоторое время и поиграть, но мне удалось это сделать. Он будет только ЗАКРЫТЬ при нажатии кнопки, но он откроется при нажатии кнопки «Календарь».
Я добавил EventHandler
в DatePicker
, когда было hidden
.
VBox root = new VBox();
Button button = new Button("Click");
DatePicker datePicker = new DatePicker();
boolean[] buttonClicked = {false};
button.setOnAction(event->{
if(datePicker.isShowing()) {
buttonClicked[0] = true;
datePicker.hide();
buttonClicked[0] = false;
}
});
datePicker.setOnHidden(event -> {
if(!buttonClicked[0]){
datePicker.show();
}
});
root.getChildren().addAll(button, datePicker);
Scene scene = new Scene(root,800,800); ////100,100 is width and height of window
//scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();