Spec-Zone.ru › OpenJavaFX 17

Интерфейс Worker<V>

Все известные реализующие классы:
ScheduledService, Service, Task
public interface Worker<V>

Объект Worker выполняет некоторую работу в одном или нескольких фоновых потоках, состояние которого наблюдаемо и доступно приложениям JavaFX, а также используется из основного потока приложения JavaFX. Этот интерфейс в первую очередь реализуется как Task, так и Service, предоставляя общий API между обоими классами, что упрощает библиотекам и фреймворкам предоставление работников, которые хорошо работают при разработке пользовательских интерфейсов.

Работник может быть или не быть повторно используемым в зависимости от реализации. Например, Task не является повторно используемым, в то время как Service является.

Работник имеет четко определённый жизненный цикл. Каждый Работник начинается в состоянии Worker.State.READY. Когда Работник запланирован для работы (например, когда метод Service.start() сервиса Service вызывается), он переходит в состояние Worker.State.SCHEDULED. Даже Работники, которые технически не запланированы, но запущены немедленно (например, с помощью FutureTask.run()) будут переходить через состояние Worker.State.SCHEDULED по пути к состоянию Worker.State.RUNNING.

Когда Работник фактически выполняет свою работу, состояние переходит в Worker.State.RUNNING. Если Работник завершается нормально, он заканчивается в состоянии Worker.State.SUCCEEDED, и результат Работника будет установлен как свойство value. Однако, если во время выполнения Работника произойдёт исключение, состояние будет установлено в Worker.State.FAILED, а свойство exception будет установлено на возникшее исключение.

В любое время до завершения Работника (то есть, если состояние ещё не Worker.State.SUCCEEDED или Worker.State.FAILED), разработчик может вызвать метод cancel(). Если он вызван, Работник прекратит выполнение (если это возможно, включая использование Thread.interrupt), и состояние изменится на Worker.State.CANCELLED.

Единственным допустимым начальным состоянием для Работника является Worker.State.READY, а допустимые конечные состояния — Worker.State.CANCELLED, Worker.State.SUCCEEDED и Worker.State.FAILED. Свойство running устанавливается в значение true, когда состояние равно Worker.State.SCHEDULED или Worker.State.RUNNING.

Прогресс Работника можно отслеживать через три разных свойства: totalWork, workDone и progress. Эти свойства устанавливаются фактической реализацией интерфейса Worker, но могут быть наблюдаемы кем угодно. workDone — это число от -1 (означающее неопределённый прогресс) до totalWork включительно. Когда workDone == totalWork, progress будет 100% (или 1). totalWork будет числом от -1 до Long.MAX_VALUE включительно. Прогресс будет либо -1 (означающее неопределённость), либо значением от 0 до 1 включительно, представляющим от 0% до 100%.

Работник, находящийся в состояниях Worker.State.READY или Worker.State.SCHEDULED, всегда будет иметь workDone и progress, установленные в -1. Работник, находящийся в состоянии Worker.State.SUCCEEDED, всегда будет иметь workDone == totalWork и progress == 1. В любом другом состоянии значения этих свойств могут быть любыми значениями в соответствующих допустимых диапазонах.

С:
JavaFX 2.0

Краткое описание свойств

Свойства
Тип Свойство Описание
ReadOnlyObjectProperty<Throwable> exception
Получает ReadOnlyObjectProperty, представляющий любую возникшую ошибку.
ReadOnlyStringProperty message
Получает ReadOnlyStringProperty, представляющий сообщение.
ReadOnlyDoubleProperty progress
Получает ReadOnlyDoubleProperty, представляющий прогресс.
ReadOnlyBooleanProperty running
Получает ReadOnlyBooleanProperty, представляющий, работает ли Worker.
ReadOnlyObjectProperty<Worker.State> state
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
ReadOnlyStringProperty title
Получает ReadOnlyStringProperty, представляющий заголовок.
ReadOnlyDoubleProperty totalWork
Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое нужно выполнить.
ReadOnlyObjectProperty<V> value
Получает ReadOnlyObjectProperty, представляющий значение.
ReadOnlyDoubleProperty workDone
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.

Краткое описание вложенных классов

Вложенные классы
Модификатор и тип Интерфейс Описание
static class  Worker.State
Состояние Worker.

Краткое описание методов

Модификатор и тип Метод Описание
boolean cancel()
Прерывает выполнение этого Worker.
ReadOnlyObjectProperty<Throwable> exceptionProperty()
Получает ReadOnlyObjectProperty, представляющий любую возникшую ошибку.
Throwable getException()
Указывает ошибку, которая произошла во время работы Worker, если таковая имелась.
String getMessage()
Получает сообщение, связанное с текущим состоянием этого Worker.
double getProgress()
Указывает текущий прогресс выполнения этого Worker в процентах.
Worker.State getState()
Указывает текущее состояние этого Worker.
String getTitle()
Необязательный заголовок, который должен быть связан с этим Worker.
double getTotalWork()
Указывает максимальное значение для свойства workDoneProperty().
V getValue()
Указывает значение или результат работы этого Worker.
double getWorkDone()
Указывает текущее количество выполненной работы.
boolean isRunning()
True, если состояние равно либо SCHEDULED, либо RUNNING.
ReadOnlyStringProperty messageProperty()
Получает ReadOnlyStringProperty, представляющий сообщение.
ReadOnlyDoubleProperty progressProperty()
Получает ReadOnlyDoubleProperty, представляющий прогресс.
ReadOnlyBooleanProperty runningProperty()
Получает ReadOnlyBooleanProperty, представляющий, работает ли Worker.
ReadOnlyObjectProperty<Worker.State> stateProperty()
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
ReadOnlyStringProperty titleProperty()
Получает ReadOnlyStringProperty, представляющий заголовок.
ReadOnlyDoubleProperty totalWorkProperty()
Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое нужно выполнить.
ReadOnlyObjectProperty<V> valueProperty()
Получает ReadOnlyObjectProperty, представляющий значение.
ReadOnlyDoubleProperty workDoneProperty()
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.

Подробности свойств

состояние

ReadOnlyObjectProperty<Worker.State> stateProperty
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
См. также:
getState()

значение

ReadOnlyObjectProperty<V> valueProperty
Получает ReadOnlyObjectProperty, представляющий значение.
См. также:
getValue()

исключение

ReadOnlyObjectProperty<Throwable> exceptionProperty
Получает ReadOnlyObjectProperty, представляющий любое возникшее исключение.
См. также:
getException()

выполненаРабота

ReadOnlyDoubleProperty workDoneProperty
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.
См. также:
getWorkDone()

общаяРабота

ReadOnlyDoubleProperty totalWorkProperty
Получает ReadOnlyDoubleProperty, представляющий максимальный объем работы, который необходимо выполнить. Эти «единицы работы» имеют значение для реализации Worker, например, количество байтов, которые необходимо загрузить, количество изображений для обработки или какой-либо другой метрики.
См. также:
getTotalWork()

прогресс

ReadOnlyDoubleProperty progressProperty
Получает ReadOnlyDoubleProperty, представляющий прогресс.
См. также:
getProgress()

запуск

ReadOnlyBooleanProperty runningProperty
Получает ReadOnlyBooleanProperty, представляющий, запущен ли Worker.
См. также:
isRunning()

сообщение

ReadOnlyStringProperty messageProperty
Получает ReadOnlyStringProperty, представляющий сообщение.
См. также:
getMessage()

заголовок

ReadOnlyStringProperty titleProperty
Получает ReadOnlyStringProperty, представляющий заголовок.
См. также:
getTitle()

Подробности методов

getState

Worker.State getState()
Указывает текущее состояние этого Worker. Начальное значение — State.READY. Задача может быть перезапущена, в этом случае она перейдет от одного из этих конечных состояний (SUCCEEDED, CANCELLED или FAILED) обратно к READY, а затем сразу к SCHEDULED и RUNNING. Эти переходы состояний могут произойти сразу один за другим, но всегда будут происходить в заданном порядке.
Возвращает:
Текущее состояние этого Worker

stateProperty

ReadOnlyObjectProperty<Worker.State> stateProperty()
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
См. также:
getState()

getValue

V getValue()
Указывает значение или результат этого Worker. Это устанавливается при входе в состояние SUCCEEDED и очищается (устанавливается в null), если Worker повторно инициализируется (то есть, если Worker является многоразовым Worker и сброшен или перезапущен).
Возвращает:
Текущее значение этого Worker

valueProperty

ReadOnlyObjectProperty<V> valueProperty()
Получает ReadOnlyObjectProperty, представляющий значение.
См. также:
getValue()

getException

Throwable getException()
Указывает исключение, которое возникло во время работы Worker, если таковое имеется. Если значение этого свойства — null, известное исключение отсутствует, даже если состояние FAILED. Если это свойство не null, оно, скорее всего, будет содержать исключение, описывающее причину сбоя.
Возвращает:
Исключение, если оно возникло

exceptionProperty

ReadOnlyObjectProperty<Throwable> exceptionProperty()
Получает ReadOnlyObjectProperty, представляющий любое возникшее исключение.
См. также:
getException()

getWorkDone

double getWorkDone()
Указывает текущий объем выполненной работы. Ноль или положительное значение указывают прогресс к завершению. Значение этой переменной может или не может измениться от своего значения по умолчанию в зависимости от конкретной реализации Worker. Значение -1 означает, что текущий объем выполненной работы определить невозможно (то есть он неопределен). Значение этого свойства всегда меньше или равно totalWork.
Возвращает:
объём выполненной работы
См. также:
totalWorkProperty(), progressProperty()

workDoneProperty

ReadOnlyDoubleProperty workDoneProperty()
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.
См. также:
getWorkDone()

getTotalWork

double getTotalWork()
Указывает максимальное значение для свойства workDoneProperty(). totalWork будет либо -1 (что указывает на неопределенность объема работы), либо это будет ненулевое значение, меньшее или равное Double.MAX_VALUE.
Возвращает:
общий объем работы
См. также:
workDoneProperty(), progressProperty()

totalWorkProperty

ReadOnlyDoubleProperty totalWorkProperty()
Получает ReadOnlyDoubleProperty, представляющий максимальный объем работы, который необходимо выполнить. Эти «единицы работы» имеют значение для реализации Worker, например, количество байтов, которые необходимо загрузить, количество изображений для обработки или какой-либо другой метрики.
См. также:
getTotalWork()

getProgress

double getProgress()
Указывает текущий прогресс этого Worker в процентах завершенности. Значение между нулем и единицей указывает прогресс к завершению. Значение -1 означает, что текущий прогресс определить невозможно (то есть он неопределен). Это свойство может или не может измениться от своего значения по умолчанию -1 в зависимости от конкретной реализации Worker.
Возвращает:
текущий прогресс
См. также:
workDoneProperty(), totalWorkProperty()

progressProperty

ReadOnlyDoubleProperty progressProperty()
Получает ReadOnlyDoubleProperty, представляющий прогресс.
См. также:
getProgress()

isRunning

boolean isRunning()
True, если состояние — SCHEDULED или RUNNING. При связывании Worker с ProgressIndicator, вы обычно будете связывать видимость ProgressIndicator со свойством running Worker, а прогресс ProgressIndicator — со свойством progress Worker.
Возвращает:
true, если этот Worker запущен

runningProperty

ReadOnlyBooleanProperty runningProperty()
Получает ReadOnlyBooleanProperty, представляющий, запущен ли Worker.
См. также:
isRunning()

getMessage

String getMessage()
Получает сообщение, связанное с текущим состоянием этого Worker. Это может быть что-то вроде «Обработка изображения 1 из 3», например.
Возвращает:
текущее сообщение

messageProperty

ReadOnlyStringProperty messageProperty()
Получает ReadOnlyStringProperty, представляющий сообщение.
См. также:
getMessage()

getTitle

String getTitle()
Необязательный заголовок, который должен быть связан с этим Worker. Это может быть что-то вроде «Изменение изображений».
Возвращает:
текущий заголовок

titleProperty

ReadOnlyStringProperty titleProperty()
Получает ReadOnlyStringProperty, представляющий заголовок.
См. также:
getTitle()

cancel

boolean cancel()
Прерывает выполнение этого Worker. Вызов этого метода приведет либо к удалению этого Worker из очереди выполнения, либо к остановке выполнения.
Возвращает:
Возвращает true, если отмена прошла успешно

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API