为什么在Java fx中自动选择第一个文本字段

时间:2018-06-28 11:26:46

标签: javafx

我想在java fx文本字段中初始化文本。为什么已经选择了文本。 enter image description here

FXMLDocumentController类中的

代码段

@Override
    public void initialize(URL location, ResourceBundle resources) {
        source.setText("test source");
        dest.setText("test dest");
        source.setEditable(false);
        dest.setEditable(false);
    }

1 个答案:

答案 0 :(得分:1)

这是TextField的默认行为,即通过鼠标交互以外的方法来获得焦点。如果要更改此设置,可以将监听器添加到focused属性中以撤消选择:

source.focusedProperty().addListener((o, oldValue, newValue) -> {
    if (newValue) {
        Platform.runLater(() -> {
            int carretPosition = source.getCaretPosition();
            if (source.getAnchor() != carretPosition) {
                source.selectRange(carretPosition, carretPosition);
            }
        });
    }
});