是否可以在选择日期事件中关闭DatePicker中的弹出窗口

时间:2016-10-21 13:42:24

标签: javafx javafx-8

我在DatePicker中选择日期后弹出窗口关闭。 我想用一个按钮手动关闭它。 我可以阻止日期选择时关闭弹出窗口吗?

1 个答案:

答案 0 :(得分:0)

花了一些时间玩弄,但我已经成功地做到了你需要的。按钮点击时只会 CLOSE ,但点击日历按钮时会打开。

EventHandlerDatePicker添加了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();