java swing addTaskListener

java swing addTaskListener,java,swing,data-binding,javabeans,Java,Swing,Data Binding,Javabeans,我是java新手,有一个swing任务问题 我可以将侦听器添加到当前正在运行的任务中吗?例如,如果在doInBackGround中发生了什么,我想为finished添加一个侦听器并显示一个对话框。我试过了,但编译器不喜欢我。:) 差不多 private class MyTask extends Task<Void, Void>{ @Override public void doInBackground(){ if(foo == foo){ this.

我是java新手,有一个swing任务问题

我可以将侦听器添加到当前正在运行的任务中吗?例如,如果在doInBackGround中发生了什么,我想为finished添加一个侦听器并显示一个对话框。我试过了,但编译器不喜欢我。:)

差不多

private class MyTask extends Task<Void, Void>{
  @Override
  public void doInBackground(){
     if(foo == foo){
        this.addTaskListener(new TaskListener() {
          public void taskFinsished(){}...
         });
     }
  }
}
私有类MyTask扩展了任务{
@凌驾
公共无效doInBackground(){
如果(foo==foo){
this.addTaskListener(新TaskListener()){
public void taskFinsished(){}。。。
});
}
}
}

谢谢,Task不是面向侦听器的组件。您需要重写它的一个或多个方法以获得结果。所有这些方法都将在EDT上执行

cancelled()-调用了
cancel()
方法来终止任务

成功(T result)-任务
已完成,
结果
保存
doInBackground()
的返回值

中断(InterruptedException e)-
中断
是在执行
任务的
线程上调用的

失败(可丢弃原因)-
doInBackground
引发异常


finished()-任务
已完成(以某种方式)。将其视为
任务

最终
的功能等价物,为什么不将其添加到MyTask的构造函数中?