我使用selectionAll()来选择文本字段中的整个文本,但它只是在焦点来自键盘(如Tab)时才有效。
如果我在文本字段中单击鼠标,它会在很短的时间内选择文本。但它必须像键盘的焦点一样工作。
flaschenPreis.focusedProperty().addListener(new ChangeListener<Boolean>() {
public void changed(ObservableValue ov, Boolean t, Boolean t1) {
if ( flaschenPreis.isFocused() &&
!flaschenPreis.getText().isEmpty()) {
flaschenPreis.selectAll();
}
}
});
literPreis.focusedProperty().addListener(new ChangeListener() {
public void changed(ObservableValue ov, Object t, Object t1) {
if (literPreis.isFocused() &&
!literPreis.getText().isEmpty()) {
literPreis.selectAll();
}
}
});
flaschenPreis und literPreis是我的文本域
答案 0 :(得分:17)
这个技巧可以帮到你:
final TextField tf = new TextField("Text");
tf.focusedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue ov, Boolean t, Boolean t1) {
Platform.runLater(new Runnable() {
@Override
public void run() {
if (tf.isFocused() && !tf.getText().isEmpty()) {
tf.selectAll();
}
}
});
}
});
答案 1 :(得分:0)
这对我有用:
PathField.focusedProperty().addListener((obs, wasFocused, isNowFocused) -> {
if (isNowFocused) {
Platform.runLater(() -> PathField.selectAll());
}
});