任务完成后JavaFX执行代码
问题描述:
我为我的应用程序使用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信息类等
除其他我要将网址插入到数据库上传完成后。如何在文件上传后执行一些代码?
答
当你创建任务,你可能与
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
});
为什么你的任务返回空,如果有'UploadFile'的返回类型? –
这是我的代码中的一个错误,注意到它前几个几秒,并将其更改为void – Ronon
现在它不会编译。如果它不应该返回任何内容,则使其延伸到任务并返回null。 –