Spec-Zone.ru › OpenJavaFX 24

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

Параметры типа:
V - тип возвращаемого значения работника
Все известные реализующие классы:
ScheduledService, Service, Task
public interface Worker<V>

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

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

Работник имеет хорошо определённый жизненный цикл. Каждый Работник начинает в состоянии Worker.State.READY. Когда Работник запланирован на выполнение (например, когда вызывается метод Service.start() сервиса), он переходит в состояние 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. Эти свойства устанавливаются фактической реализацией интерфейса Работника, но могут быть просмотрены любым пользователем. 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

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

Модификатор и тип Интерфейс Описание
static enum  Worker.State
Состояние работника.

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

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

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

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

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

состояние

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

значение

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

исключение

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

выполненная работа

ReadOnlyDoubleProperty workDoneProperty
Возвращает ReadOnlyDoubleProperty, представляющий текущую степень выполнения.
См. также:
  • getWorkDone()
  • workDoneProperty()

общий объем работы

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

прогресс

ReadOnlyDoubleProperty progressProperty
Возвращает ReadOnlyDoubleProperty, представляющий степень выполнения.
См. также:
  • getProgress()
  • progressProperty()

работает

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

сообщение

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

заголовок

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

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

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()
Истинно, если состояние равно SCHEDULED или RUNNING. При привязке Worker к ProgressIndicator, вы обычно привязываете видимость ProgressIndicator к свойству running Worker, а прогресс ProgressIndicator к свойству progress Worker.
Возвращает:
true, если этот Worker выполняется

runningProperty

ReadOnlyBooleanProperty runningProperty()
Возвращает ReadOnlyBooleanProperty, представляющее, выполняется ли Worker.
Возвращает:
свойство, представляющее, выполняется ли 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 и/или его дочерние компании. Все права защищены.

© 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