2017-01-16 143 views
0

我为我的应用程序使用JavaFX,并使用JavaFX中的任务来上传文件。任务完成后JavaFX执行代码

public class Upload extends Task<UploadFile> { 
    private UploadFile uploadFile;  
    public Upload(UploadFile uploadFile){ 
     this.uploadFile= uploadFile; 
    } 

    @Override 
    protected synchronized UploadFile call() throws Exception { 
     .... 
      hcl.invokeMethodUploadFile(uploadFile); 
      return null; 
    } 
} 

“启动”方法创建一个UploadFile容器并将其添加到Threadpoolexecutor的队列中。该方法将为每个文件执行一次。此类还包含在完成文件上传后继续执行的其他必要信息。

public void initiate(){ 

     UploadFile uc = new UploadFile(file); 
     // Set other informations as well 

    // add Container to queue 
     main.getUploadFiles().add(uc); 

    } 

UploadFile是一个包含文件,serverinformation信息类等
除其他我要将网址插入到数据库上传完成后。如何在文件上传后执行一些代码?

+1

为什么你的任务返回空,如果有'UploadFile'的返回类型? –

+0

这是我的代码中的一个错误,注意到它前几个几秒,并将其更改为void – Ronon

+0

现在它不会编译。如果它不应该返回任何内容,则使其延伸到任务并返回null。 –

回答

4

当你创建任务,你可能与

Upload upload = new Upload(uc); 

做的地方,你可以做

upload.setOnSucceeded(e -> { 
    // this code executed when task is successfully completed 
    // this is executed on the FX Application Thread, so you can 
    // safely modify the UI 
});