私がやろうとしているのは、ボタンをクリックした後でもリアルタイムでテキストエリアにテキストを印刷することです。
ボタンをクリックすると、ジョブが完了するまで UI がフリーズし、その後、System.out.println とは異なり、すべてのテキストが一緒に印刷されます。
以下のコードは私が試したもので、期待どおりに動作しません。UI がハングアップし、テキストエリアに「テスト」が表示されません。
リスナーを使用する必要はなく、appendText のみを使用しても問題ありませんが、UI をフリーズせずにボタンの 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
}
});