JavaFX - 无法再次运行任务

时间:2015-07-15 08:21:48

标签: java multithreading javafx progress-bar task

也许有人会知道如何解决这个问题因为我不知道。我试图运行我的类什么扩展任务,第一次当我尝试运行它正常运行(我正在使用它为progressBar)。当我的任务完成第一个操作时,我正在尝试下一个调用但它不起作用,只有进度条显示初始化信息。非常感谢/ bw。

这是代码:

声明:

public class QueryCreator extends Service<Void>{

...
//constructor 
....

@Override
protected Task<Void> createTask() {
 return new Task<Void>(){
    @Override
    protected Void call() throws Exception {

        updateMessage("Init");
        // count is  ;d count of queries
        for(int i = 0 ; i < count ; i++){
            String queryString = "";

            ....
            // creating string for query
            ....

            FileSaver.getInstance().writeLine(queryString); // instance of file where i put created queries
            updateProgress(i+1,count);
            int procent = ((i+1)*100)/count;
            updateMessage("Done: " + procent + "" + "/100");
        }

        FileSaver.getInstance().closeFile();
        updateMessage("File created");

        return null
    }
  };

}

}

用法:

   ....

Service<Void> QueryWorker = new QueryFileCreator(....);

progressBar.progressProperty().unbind();
progressBar.progressProperty().bind(QueryWorker.progressProperty());

QueryWorker.messageProperty().addListener((obs, oldVal , newVal)- {
    procentLabel.setText(newVal);
});

FileSaver.getInstance().createFilePath( .....// filechooser // ) ; // creating file path via filechooser

QueryWorker.start();

....

0 个答案:

没有答案