如何在输入时在微调器文本字段中选择数字或文本?

时间:2018-11-20 23:09:51

标签: javafx spinner

我正在将Javafx微调器用于Integers。当我单击微调器或使用TAB移至微调器时,是否可以选择该值? 像它适用于TextAreas的代码如下:

myTextArea.focusedProperty().addListener((obs, isFocused, isNowFocused) -> {
        if (isNowFocused) {
            myTextArea.selectAll();
   }
})

selectAll()对微调器不起作用。我想开始在微调框输入内容,而不必事先删除初始值。

1 个答案:

答案 0 :(得分:1)

您可以在selectAll()的编辑器(即TextField)上调用Spinner

spinner.focusedProperty().addListener((obs, wasFocused, isFocused) -> {
    if (isFocused) {
        Platform.runLater(spinner.getEditor()::selectAll);
    }
});

尝试此操作时,我不得不将selectAll调用包装在Platform.runLater调用中。 Spinner本身在获得焦点时可能正在做某事,从而干扰了对selectAll的调用;使用Platform.runLater将呼叫推迟到Spinner做任何事情之后的某个时间。