相关疑难解决方法(0)

JavaFX datepicker没有更新值

有点奇怪的是,我正在使用JavaFX 8并且在我的Jubula测试期间遇到了一些奇怪的行为.

我有一个使用以下代码创建的datepicker控件:

public DatePicker getDatePicker(DtDate defaultDate, int width){
    DatePicker dtpckr = new DatePicker();
    dtpckr.setMaxWidth(width);
    dtpckr.setMinWidth(width);
    dtpckr.setConverter(new StringConverter<LocalDate>() {
        private DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy/MM/dd");
        @Override
        public String toString(LocalDate localDate) {
            if(localDate==null)
                return "";
            return dateTimeFormatter.format(localDate);
        }
        @Override
        public LocalDate fromString(String dateString) {
            if(dateString==null || dateString.trim().isEmpty())
                return null;
            return LocalDate.parse(dateString,dateTimeFormatter);
        }
    });
    dtpckr.setPromptText("yyyy/MM/dd");
    dtpckr.setValue(LocalDate.parse(defaultDate.toString(), DateTimeFormatter.ofPattern("yyyy/MM/dd")));
    return dtpckr;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,控件在窗体上创建并按预期工作.如果我使用日历来选择日期,则会更新该值.

现在,对于奇数部分,如果我输入日期选择器并手动键入日期(例如2017/10/11)然后通过选项卡或单击表单上的下一个文本框退出控件,则datepicker localdate值不会没有更新.更新日期的唯一方法是按Enter键强制datepicker实现新值.这导致另一个问题,因为我有以下代码:

public void createSetDateAndTimeControls(){
    DtDateAndTime currentDateAndTime;
    try {
        currentDateAndTime = systemstateController.getServerDateTime();
        /*
         * Creating controls to be used on the form
         */
        int …
Run Code Online (Sandbox Code Playgroud)

java javafx datepicker

13
推荐指数
1
解决办法
5196
查看次数

标签 统计

datepicker ×1

java ×1

javafx ×1