JavaFX TaskWorker не запускаетсяJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JavaFX TaskWorker не запускается

Сообщение Anonymous »

Я разрабатываю небольшое настольное приложение JavFXML, включающее TaskWorker. Цель состоит в том, чтобы запустить работника задачи при нажатии кнопки, но ничего не происходит и работник задачи не вызывается. Код щелчка мыши следующий:

Код: Выделить всё

public class TableViewController implements Initializable{
....

@FXML private void handleGoButton (ActionEvent event) {
TaskWorker taskworker = new TaskWorker(50);
new Thread(taskworker).start();
}
Первоначальной целью было запустить индикатор выполнения и операторы копирования файлов внутри TaskWorker, но чтобы попытаться понять проблему, я удалил большую часть этого кода и заменил его простым циклом. который печатает значение индекса. Таким образом, Taskworker выглядит следующим образом:

Код: Выделить всё

public class TaskWorker extends Task {
public int value;

public TaskWorker (int value) {
this.value = value;
System.out.println("Value = " + this.value );
}

@Override
protected Void call() throws Exception {

for (int i=0; i < this.value; i++){
System.out.println("Value of i = " + i );
Thread.sleep(400);
}
return null;
}
}
При щелчке мыши я ожидал вывода, подтверждающего, что конструктор в TaskWorker получил переданное значение, и вывода, показывающего значение индекса до переданного значения. Taskworker получает значение в конструкторе:

Код: Выделить всё

compile:
run:
Value = 50
BUILD SUCCESSFUL (total time: 18 seconds)
но метод call() никогда не запускается.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -not-start
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»