我想在java fx文本字段中初始化文本。为什么已经选择了文本。
FXMLDocumentController类中的代码段
@Override
public void initialize(URL location, ResourceBundle resources) {
source.setText("test source");
dest.setText("test dest");
source.setEditable(false);
dest.setEditable(false);
}
答案 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);
}
});
}
});