функция .getText моего текстового поля не синхронизирована - PullRequest
0 голосов
/ 10 января 2020

Я пишу проект af xml, и есть текстовое поле с этим обработчиком:

@FXML
    private void action (KeyEvent event) throws ParseException, IOException {
        System.out.println(textField.getText());
    }

, но проблема, например, если я пишу "проблема" в текстовое поле, вывод я получаю это «проблема», это как будто actionhandler всегда на шаг позади! как я могу решить эту проблему?

1 Ответ

1 голос
/ 10 января 2020

Вероятно, ваш textField обновляется после отпускания клавиши, но это событие происходит при нажатии клавиши. На вашем месте я бы попробовал:

  • тестирование на EventType и печать только после выпуска, так что-то вроде: if (event.getEventType() == KeyEvent.KEY_RELEASED) ... (см. do c) или
  • просто взятие клавиши, которая была нажата в конце от event.getText() и добавление к строке от textField.getText() (хотя и хакерский вид)

Ни один из них не идеален но это то, где я бы начал. Удачи!

...