Эквивалент JavaFX SwingWorker?
Существует ли эквивалент JavaFX для класса Java SwingWorker?
Я знаю о JavaFXзадача но с этим вы можете публиковать только сообщения String или прогресс. Я просто хочу вызвать метод в потоке GUI, как я бы сделал с SwingWorker (публикуя сообщения произвольного типа).
Вот пример того, что я имею в виду:
class PrimeNumbersTask extends
SwingWorker<List<Integer>, Integer> {
PrimeNumbersTask(JTextArea textArea, int numbersToFind) {
//initialize
}
@Override
public List<Integer> doInBackground() {
while (! enough && ! isCancelled()) {
number = nextPrimeNumber();
publish(number);
setProgress(100 * numbers.size() / numbersToFind);
}
}
return numbers;
}
@Override
protected void process(List<Integer> chunks) {
for (int number : chunks) {
textArea.append(number + "\n"); // HERE: execute in GUI thread
}
}
}
Решение
Большое спасибо за ваши ответы. Решение, которое я искал, заключается в использованииPlatform.runLater (запускаемый guiUpdater).