任务完成后JavaFX执行代码

Ron*_*non 1 java task javafx-8

我正在为我的应用程序使用 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

public void initiate(){

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

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

    } 
Run Code Online (Sandbox Code Playgroud)

UploadFile 是一个包含有关文件、服务器信息等信息的类。
除其他外,我想在上传完成后将 url 插入到数据库中。文件上传后如何执行一些代码?

Jam*_*s_D 6

当您创建任务时,您可能会在某处使用它

Upload upload = new Upload(uc);
Run Code Online (Sandbox Code Playgroud)

你可以做

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
});
Run Code Online (Sandbox Code Playgroud)