Что я пытаюсь сделать, это печатать тексты на textarea в реальном времени даже после нажатия кнопки.Как запустить прослушиватель без зависания на JavaFX?
Когда я нажимаю кнопку, пользовательский интерфейс замерзает до завершения работы, а затем печатает все тексты вместе в отличие от System.out.println.
Код ниже - это то, что я пробовал, и он не работает так, как я ожидал. Пользовательский интерфейс просто висит и не показывает мне «тест» на textarea.
Нет необходимости использовать слушателя, и это нормально использовать только appendText, , но я просто не могу понять, как разрешить ActionEvent для кнопки работать без замораживания пользовательского интерфейса.
Я по-настоящему признателен за вашу помощь или гораздо лучший код!
final TextField announcement = new TextField();
Platform.runLater(new Runnable() {
@Override public void run() {
announcement.textProperty().addListener(new javafx.beans.value.ChangeListener<String>() {
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
textoutput.appendText(announcement.getText());
}
});
}
});
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
announcement.setText("test");
// bunch of codes below
}
});
Вы должны запустить, что бы вы ни делали в действии кнопки, в новой теме. Вы можете использовать 'JavaFX Task' для его достижения. – ItachiUchiha
@ItachiUchiha Если возможно, можете ли вы привести мне пример? Спасибо. – Keibee