第一次单击 JavaFX 时突出显示 TextField 中的所有文本

Highlight all text in TextField upon FIRST click JavaFX

如何使我的文本字段 (JavaFX) 与上面 Google Chrome 的搜索栏完全相同。这意味着,如果我点击一次,它会标记所有内容,但如果我再次点击,我就在我点击的地方。

示例:

开始:

第一次点击:

再次点击:

编辑

这是我试过的:

textField.focusedProperty().addListener((obs, wasFocused, isNowFocused) -> {
                if (isNowFocused) {
                    textField.selectAll();
                }
                if (wasFocused) {
                    textField.deselect();
                }
            });

但是使用这段代码,当我第一次点击时,所有内容都被选中并立即再次取消选择。

我会使用 MouseEventEventFilter:

TextField textField = new TextField("This is a test");

textField.addEventFilter(MouseEvent.MOUSE_PRESSED, e -> {
    if (textField.getSelectedText().equals(textField.getText())) {
        textField.deselect();
    } else if (textField.getSelectedText().isEmpty()) {
        textField.selectAll();
        e.consume();
    } 
});