-
- Все известные реализующие классы:
-
ScheduledService,Service,Task
public interface Worker<V>Объект Worker выполняет работу в одном или нескольких фоновых потоках, состояние которого наблюдаемо и доступно приложениям JavaFX, и используется из основного потока приложения JavaFX. Этот интерфейс в основном реализуется классами
TaskиService, предоставляя общий API для обоих классов, что упрощает библиотекам и фреймворкам создание работающих с пользовательскими интерфейсами объектов Worker.Объект Worker может быть или не быть повторно используемым в зависимости от реализации. Например,
Taskне является повторно используемым, аService— является.У объекта Worker есть чётко определённый жизненный цикл. Каждый Worker начинает в состоянии
Worker.State.READY. Когда Worker запланирован для работы (например, когда вызывается методService.start()сервиса), он переходит в состояниеWorker.State.SCHEDULED. Даже Worker, которые не запланированы технически, но начинаются сразу (например, с помощьюFutureTask.run()) будут проходить через состояниеWorker.State.SCHEDULEDпо пути к состояниюWorker.State.RUNNING.Когда Worker фактически выполняет свою работу, состояние переходит в
Worker.State.RUNNING. Если Worker завершается нормально, он завершается в состоянииWorker.State.SUCCEEDED, и результат работы Worker устанавливается как свойствоvalue. Однако, если во время выполнения Worker возникает исключение, состояние устанавливается вWorker.State.FAILED, а свойствоexceptionустанавливается в возникшее исключение.В любое время до завершения Worker (то есть, если состояние ещё не
Worker.State.SUCCEEDEDилиWorker.State.FAILED), разработчик может вызвать методcancel(). Если он вызывается, выполнение Worker прекращается (при возможности, включая использование Thread.interrupt), а состояние меняется наWorker.State.CANCELLED.Единственное допустимое начальное состояние для Worker —
Worker.State.READY, а допустимые конечные состояния —Worker.State.CANCELLED,Worker.State.SUCCEEDEDиWorker.State.FAILED. Свойствоrunningустанавливается в значение true, когда состояние равноWorker.State.SCHEDULEDилиWorker.State.RUNNING.Прогресс Worker можно отслеживать с помощью трёх свойств,
totalWork,workDoneиprogress. Эти свойства устанавливаются фактической реализацией интерфейса Worker, но их могут наблюдать все. СвойствоworkDone— число от -1 (означающее неопределённый прогресс) доtotalWorkвключительно. КогдаworkDone == totalWork,progressбудет 100% (или 1).totalWorkбудет числом от -1 до Long.MAX_VALUE включительно. Прогресс будет либо -1 (означает неопределённый прогресс), либо значением от 0 до 1 включительно, представляющим 0%–100%.Worker, находящийся в состояниях
Worker.State.READYилиWorker.State.SCHEDULED, всегда будет иметьworkDoneиprogress, установленные в -1. Worker, находящийся в состоянииWorker.State.SUCCEEDED, всегда будет иметьworkDone == totalWorkиprogress == 1. В любом другом состоянии значения этих свойств могут быть любыми значениями в их соответствующих допустимых диапазонах.- Since:
- JavaFX 2.0
-
Сводка свойств
Свойства Тип Свойство Описание ReadOnlyObjectProperty<Throwable>exceptionПолучает ReadOnlyObjectProperty, представляющий любую возникшую ошибку.ReadOnlyStringPropertymessageПолучает ReadOnlyStringProperty, представляющий сообщение.ReadOnlyDoublePropertyprogressПолучает ReadOnlyDoubleProperty, представляющий прогресс.ReadOnlyBooleanPropertyrunningПолучает ReadOnlyBooleanProperty, представляющий, выполняется ли Worker.ReadOnlyObjectProperty<Worker.State>stateПолучает ReadOnlyObjectProperty, представляющий текущее состояние.ReadOnlyStringPropertytitleПолучает ReadOnlyStringProperty, представляющий заголовок.ReadOnlyDoublePropertytotalWorkПолучает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое необходимо выполнить.ReadOnlyObjectProperty<V>valueПолучает ReadOnlyObjectProperty, представляющий значение.ReadOnlyDoublePropertyworkDoneПолучает ReadOnlyDoubleProperty, представляющий текущий прогресс.
-
Сводка вложенных классов
Вложенные классы Модификатор и тип Интерфейс Описание static classWorker.StateСостояние Worker.
-
Сводка методов
Все методыМетоды экземпляраАбстрактные методы Модификатор и тип Метод Описание booleancancel()Прерывает выполнение этого Worker.ReadOnlyObjectProperty<Throwable>exceptionProperty()Получает ReadOnlyObjectProperty, представляющий любую возникшую ошибку.ThrowablegetException()Указывает ошибку, возникшую во время выполнения Worker, если таковая имелась.StringgetMessage()Получает сообщение, связанное с текущим состоянием этого Worker.doublegetProgress()Указывает текущий прогресс этого Worker в процентах завершения.Worker.StategetState()Указывает текущее состояние этого Worker.StringgetTitle()Необязательный заголовок, который должен быть связан с этим Worker.doublegetTotalWork()Указывает максимальное значение для свойстваworkDoneProperty().VgetValue()Указывает значение или результат этого Worker.doublegetWorkDone()Указывает текущее количество завершенной работы.booleanisRunning()True, если состояние равно SCHEDULED или RUNNING.ReadOnlyStringPropertymessageProperty()Получает ReadOnlyStringProperty, представляющий сообщение.ReadOnlyDoublePropertyprogressProperty()Получает ReadOnlyDoubleProperty, представляющий прогресс.ReadOnlyBooleanPropertyrunningProperty()Получает ReadOnlyBooleanProperty, представляющий, выполняется ли Worker.ReadOnlyObjectProperty<Worker.State>stateProperty()Получает ReadOnlyObjectProperty, представляющий текущее состояние.ReadOnlyStringPropertytitleProperty()Получает ReadOnlyStringProperty, представляющий заголовок.ReadOnlyDoublePropertytotalWorkProperty()Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое необходимо выполнить.ReadOnlyObjectProperty<V>valueProperty()Получает ReadOnlyObjectProperty, представляющий значение.ReadOnlyDoublePropertyworkDoneProperty()Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.
-
Подробное описание свойств
-
state
ReadOnlyObjectProperty<Worker.State> stateProperty
Получает ReadOnlyObjectProperty, представляющий текущее состояние.- См. также:
getState()
-
value
ReadOnlyObjectProperty<V> valueProperty
Получает ReadOnlyObjectProperty, представляющий значение.- См. также:
getValue()
-
exception
ReadOnlyObjectProperty<Throwable> exceptionProperty
Получает ReadOnlyObjectProperty, представляющий любую произошедшую ошибку.- См. также:
getException()
-
workDone
ReadOnlyDoubleProperty workDoneProperty
Получает ReadOnlyDoubleProperty, представляющий текущую степень выполнения.- См. также:
getWorkDone()
-
totalWork
ReadOnlyDoubleProperty totalWorkProperty
Получает ReadOnlyDoubleProperty, представляющий максимальный объем работы, который необходимо выполнить. Эти "рабочие единицы" имеют значение для реализации Worker, например, количество байтов, которые нужно загрузить, количество изображений для обработки или какой-либо другой показатель.- См. также:
getTotalWork()
-
progress
ReadOnlyDoubleProperty progressProperty
Получает ReadOnlyDoubleProperty, представляющий степень выполнения.- См. также:
getProgress()
-
running
ReadOnlyBooleanProperty runningProperty
Получает ReadOnlyBooleanProperty, указывающий, выполняется ли Worker.- См. также:
isRunning()
-
message
ReadOnlyStringProperty messageProperty
Получает ReadOnlyStringProperty, представляющий сообщение.- См. также:
getMessage()
-
title
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()
Истинно, если состояние равно либо SCHEDULED, либо RUNNING. При привязке Worker кProgressIndicator, обычно видимость ProgressIndicator привязывается к свойству running Worker, а прогресс ProgressIndicator — к свойству progress Worker.- Возвращает:
- истина, если этот 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.