Интерфейс 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 |
exception |
Получает ReadOnlyObjectProperty, представляющий любое произошедшее исключение. |
ReadOnlyStringProperty |
message |
Получает ReadOnlyStringProperty, представляющий сообщение. |
ReadOnlyDoubleProperty |
progress |
Получает ReadOnlyDoubleProperty, представляющий прогресс. |
ReadOnlyBooleanProperty |
running |
Получает ReadOnlyBooleanProperty, представляющий, работает ли Работник. |
ReadOnlyObjectProperty |
state |
Получает ReadOnlyObjectProperty, представляющий текущее состояние. |
ReadOnlyStringProperty |
title |
Получает ReadOnlyStringProperty, представляющий заголовок. |
ReadOnlyDoubleProperty |
totalWork |
Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которую нужно выполнить. |
ReadOnlyObjectProperty |
value |
Получает ReadOnlyObjectProperty, представляющий значение. |
ReadOnlyDoubleProperty |
workDone |
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
cancel() |
Прерывает выполнение этого работника. |
ReadOnlyObjectProperty |
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 |
stateProperty() |
Получает ReadOnlyObjectProperty, представляющий текущее состояние. |
ReadOnlyStringProperty |
titleProperty() |
Получает ReadOnlyStringProperty, представляющий заголовок. |
ReadOnlyDoubleProperty |
totalWorkProperty() |
Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которую нужно выполнить. |
ReadOnlyObjectProperty |
valueProperty() |
Получает ReadOnlyObjectProperty, представляющий значение. |
ReadOnlyDoubleProperty |
workDoneProperty() |
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс. |
Подробности свойств
состояние
ReadOnlyObjectProperty<Worker.State> stateProperty
- См. также:
значение
ReadOnlyObjectProperty<V> valueProperty
- См. также:
исключение
ReadOnlyObjectProperty<Throwable> exceptionProperty
- См. также:
выполненная работа
ReadOnlyDoubleProperty workDoneProperty
- См. также:
общий объем работы
ReadOnlyDoubleProperty totalWorkProperty
- См. также:
прогресс
ReadOnlyDoubleProperty progressProperty
- См. также:
работает
ReadOnlyBooleanProperty runningProperty
- См. также:
сообщение
ReadOnlyStringProperty messageProperty
- См. также:
заголовок
ReadOnlyStringProperty titleProperty
- См. также:
Подробности методов
getState
Worker.State getState()
- Возвращает:
- Текущее состояние этого Worker
stateProperty
ReadOnlyObjectProperty<Worker.State> stateProperty()
- Возвращает:
- Свойство, представляющее состояние
- См. также:
getValue
V getValue()
- Возвращает:
- Текущее значение этого Worker
valueProperty
ReadOnlyObjectProperty<V> valueProperty()
- Возвращает:
- Свойство, представляющее текущее значение
- См. также:
getException
Throwable getException()
null, известное исключение отсутствует, даже если состояние FAILED. Если это свойство не равно null, оно, скорее всего, будет содержать исключение, описывающее причину ошибки.- Возвращает:
- исключение, если оно произошло
exceptionProperty
ReadOnlyObjectProperty<Throwable> exceptionProperty()
- Возвращает:
- свойство, представляющее исключение
- См. также:
getWorkDone
double getWorkDone()
- Возвращает:
- объём выполненной работы
- См. также:
workDoneProperty
ReadOnlyDoubleProperty workDoneProperty()
- Возвращает:
- Свойство, представляющее объем выполненной работы
- См. также:
getTotalWork
double getTotalWork()
workDoneProperty(). totalWork будет либо -1 (что указывает на неопределенность объема работы), либо это будет ненулевое значение, меньшее или равное Double.MAX_VALUE.- Возвращает:
- общий объем работы
- См. также:
totalWorkProperty
ReadOnlyDoubleProperty totalWorkProperty()
- Возвращает:
- свойство, представляющее общий объем работы
- См. также:
getProgress
double getProgress()
- Возвращает:
- текущая степень выполнения
- См. также:
progressProperty
ReadOnlyDoubleProperty progressProperty()
- Возвращает:
- свойство, представляющее степень выполнения
- См. также:
isRunning
boolean isRunning()
ProgressIndicator, вы обычно привязываете видимость ProgressIndicator к свойству running Worker, а прогресс ProgressIndicator к свойству progress Worker.- Возвращает:
- true, если этот Worker выполняется
runningProperty
ReadOnlyBooleanProperty runningProperty()
- Возвращает:
- свойство, представляющее, выполняется ли worker
- См. также:
getMessage
String getMessage()
- Возвращает:
- текущее сообщение
messageProperty
ReadOnlyStringProperty messageProperty()
- Возвращает:
- свойство, представляющее текущее сообщение
- См. также:
getTitle
String getTitle()
- Возвращает:
- текущий заголовок
titleProperty
ReadOnlyStringProperty titleProperty()
- Возвращает:
- свойство, представляющее текущий заголовок
- См. также:
cancel
boolean cancel()
- Возвращает:
- возвращает 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.