JavaFX8有没有办法在代码中选择DatePicker中的文本而不点击它?

时间:2015-09-02 09:31:16

标签: datepicker javafx-8

JavaFX8中是否有一种方法可以从Java代码中选择DatePicker中的日期(作为文本)?我希望以这种方式使用DatePicker激活控件,用户可以在不使用鼠标的情况下编辑日期。

这里描述了类似的问题Is there a way to select a text field in code without clicking on it (javafx)?,但问题出在TextField上。

我尝试过上述问题中给出的解决方案:

Platform.runLater(new Runnable() {

        @Override
        public void run() {
            datePicker.requestFocus();
        }
    });

结果,datePicker控件被聚焦,但未选择文本 - 键入新日期会导致将新字符附加到默认字符。

有什么建议吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

问题已根据kleopatra的提示以下列方式解决:

Platform.runLater(new Runnable() {

    @Override
    public void run() {
        datePicker.requestFocus();
        datePicker.getEditor().selectAll();
    }
});

谢谢你。

答案 1 :(得分:0)

在致电stage.show();后添加以下代码:

datePicker.getEditor().requestFocus();
datePicker.getEditor().positionCaret(0);
datePicker.getEditor().selectNextWord();