java swing addTaskListener - PullRequest
       10

java swing addTaskListener

0 голосов
/ 10 июля 2010

Я новичок в Java, и у меня есть задание на качели.

Могу ли я добавить слушателя в текущую задачу? Например, если что-то происходит в doInBackGround, я хочу добавить слушателя для завершения и отобразить диалог. Я пытался, но компилятор не любит меня. :)

Нечто подобное.

private class MyTask extends Task<Void, Void>{
  @Override
  public void doInBackground(){
     if(foo == foo){
        this.addTaskListener(new TaskListener() {
          public void taskFinsished(){}...
         });
     }
  }
}

Спасибо

1 Ответ

2 голосов
/ 19 июля 2010

Задача не ориентирована на слушателя. Вам нужно переопределить один или несколько его методов, чтобы получить результаты. Все эти методы будут выполняться в EDT.

cancelled () - Для завершения задачи был вызван метод cancel().

успешно (T результат) - Task завершено, а result содержит возвращаемое значение из doInBackground().

прерывается (InterruptedException e) - interrupt был вызван на Thread, выполняющем Task.

не удалось (отклоняемая причина) - doInBackground сгенерировал исключение.

закончено () - Task завершено (некоторым образом). Думайте об этом как о функциональном эквиваленте finally для Tasks.

...