JavaFX: обновить пользовательский интерфейс, но не от действия над графическим интерфейсом, но информацию отправили? - PullRequest
0 голосов
/ 11 июня 2019

Как я могу изменить пользовательский интерфейс JavaFX, но не с помощью пользовательского жеста, такого как нажатие кнопки, но с помощью внешней функции (некоторые данные получены), которая вызывает функцию, которая обновляет пользовательский интерфейс?

Я видел в нескольких вопросах здесь, что задача должна решить эту проблему, но я не полностью понял приведенный ниже пример: Я хочу связать (шаблон наблюдателя) потребителя кинезиса, чтобы заполнить цвет круг в моем графическом интерфейсе. Я получаю, что мне нужно связать свойство заполнения этого круга потребляется запись события, но я не понял, что такое: task.progressProperty ()? в примере кода. И на что я меняю это, чтобы получить ссылку на запись, использованную для заполнения круга?

Спасибо!

import javafx.concurrent.Task;

Task task = new Task<Void>() {
    @Override public Void call() {
        static final int max = 1000000;
        for (int i=1; i<=max; i++) {
            if (isCancelled()) {
               break;
            }
            updateProgress(i, max);
        }
        return null;
    }
};
ProgressBar bar = new ProgressBar();
bar.progressProperty().bind(task.progressProperty());
new Thread(task).start();
...