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

Javafx 如何在输入时在微调器文本字段中选择数字或文本?,javafx,spinner,Javafx,Spinner,我正在使用javafx微调器处理整数。当我单击微调器或使用TAB键移动到微调器时,是否有方法选择微调器中的值? 它适用于具有以下代码的文本区域: myTextArea.focusedProperty().addListener((obs, isFocused, isNowFocused) -> { if (isNowFocused) { myTextArea.selectAll(); } }) selectAll()不适用于微调器。我想开始在

我正在使用javafx微调器处理整数。当我单击微调器或使用TAB键移动到微调器时,是否有方法选择微调器中的值? 它适用于具有以下代码的文本区域:

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

selectAll()不适用于微调器。我想开始在微调器字段中键入,而不删除初始值。

您可以在
微调器的编辑器(它是
文本字段
)上调用
selectAll()

spinner.focusedProperty().addListener((obs, wasFocused, isFocused) -> {
    if (isFocused) {
        Platform.runLater(spinner.getEditor()::selectAll);
    }
});
尝试此操作时,我必须将
selectAll
调用包装在
平台中。稍后运行
调用。
微调器
自身在获得焦点时可能正在执行某些操作,这会干扰对
selectAll
的调用;使用
Platform.runLater
将调用延迟到
Spinner
执行任何操作后的某个时间。

是的,它可以工作。我也尝试了“spinner.getEditor().selectAll”,但对Platform.runLater一无所知。我真的很绝望,非常感谢!