почему первое текстовое поле автоматически выбрано в java fx - PullRequest
0 голосов
/ 28 июня 2018

Я хочу инициализировать текст в текстовом поле 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 голосов
/ 29 июня 2018

Это поведение по умолчанию TextField при получении фокуса другими способами, чем взаимодействие с мышью. Если вы хотите изменить это, вы можете добавить слушателя к свойству focused, которое отменяет выбор:

source.focusedProperty().addListener((o, oldValue, newValue) -> {
    if (newValue) {
        Platform.runLater(() -> {
            int carretPosition = source.getCaretPosition();
            if (source.getAnchor() != carretPosition) {
                source.selectRange(carretPosition, carretPosition);
            }
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...