更新位于eventqueue.invokelater内的jprogresbar

wixjitnu  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(223)

我在更新jprogressbar时遇到问题:

//Start to search for files on drives
private void searchForDICOMFIles2(ArrayList<String> foundDriveLetters)
{

    //Thread 1 - search for DICOM files and add them to array
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {

                ////here is the problem
                for (String currentDriveLetter_2:foundDriveLetters)
                {
                    File currentDrive_2 = new File(currentDriveLetter_2);
                    checkFilesAndFoldersForDICOMFiles(currentDrive_2);

                }

                //updating here will work
                Screen_ImportingFiles.setCheckMarkForTaskLabel(1);
                Screen_ImportingFiles.updateProgressBar(25, 1, true);

            } catch (Exception e) {
                e.printStackTrace();

方法checkfilesandfoldersfordicomfiles是一个巨大的for循环,它遍历驱动器上的文件并根据扩展名搜索dicom文件,如果没有扩展名,它将尝试读取该文件以确定它是否是dicom。根据文件的数量,它还希望显示文件检查的进度(即50%意味着它检查了300个文件中的150个文件)。当我想从这个方法更新进度条时,它不是在jframe上更新进度条。
有没有办法像这样更新进度条?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题