栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaFX datepicker不更新值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaFX datepicker不更新值

我在上面添加的错误日志给出了答案。您可以通过以下代码访问文本框的字符串值:

datePicker.getEditor().getText();

因此,可以通过以下方式设置文本框的值:

datePicker.setValue(datePicker.getConverter()    .fromString(datePicker.getEditor().getText()));

我向失焦事件添加了一个事件,这将强制更新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; try{     return LocalDate.parse(dateString,dateTimeFormatter); } catch(Exception e){     //Bad date value entered     return null; }        }    });    dtpckr.setpromptText("yyyy/MM/dd");    dtpckr.setValue(LocalDate.parse(defaultDate.toString(), DateTimeFormatter.ofPattern("yyyy/MM/dd")));    //This deals with the bug located here where the datepicker value is not updated on focus lost    //https://bugs.openjdk.java.net/browse/JDK-8092295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel    dtpckr.focusedProperty().addListener(new ChangeListener<Boolean>() {        @Override        public void changed(Observablevalue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { if (!newValue){     dtpckr.setValue(dtpckr.getConverter().fromString(dtpckr.getEditor().getText())); }        }    });    return dtpckr;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号