我使用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和literPreis是我的文本字段
最佳答案
这个技巧将帮助您:
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();
}
}
});
}
});
关于javafx-2 - JavaFx:方法selectAll()只能通过键盘焦点进行工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965318/