ZBLOG

@FXML private void confirmExcel2(ActionEvent event) { System.out.println("读取文件map=>>>>>> " + map); String zhu = map.get("zhu"); String fujian = map.get("fujian"); St

根据代码,可以看出Task只会执行一次是因为在call()方法中循环遍历完成后直接返回了null,并没有再次启动Task去执行。要解决这个问题,需要将call()方法中的逻辑移到一个循环方法里面,并且需要在这个循环方法内手动更新进度条。具体实现可以参考下面的示例代码:

Task<Void> task = new Task<Void>() {
    @Override
    protected Void call() throws Exception {
        double total = (double) sheetFiles.length;
        double progress = 0;

        for (File sfile : sheetFiles) {
            // 获取sfile的数据
            ExportPojo exportPojo = ImportExcelUtils.importExcelToSheet(sfile.getPath(), ExcelPojo.class);
            // 写出到指定文件
            ImportExcelUtils.exportDataToSheet(file, exportPojo, zhu, fileName);

            // 手动更新进度条
            progress++;
            updateProgress(progress, total);
        }

        return null;
    }
};

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=183

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?