有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在第一次单击JavaFX时突出显示文本字段中的所有文本

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

例如:

开始:

enter image description here

第一次点击:

enter image description here

再次单击:

enter image description here

编辑

这就是我尝试的:

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

但是有了这段代码,当我第一次点击时,所有的东西都被选中了,并立即被取消选中


共 (1) 个答案

  1. # 1 楼答案

    我会使用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();
        } 
    });