我在更新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上更新进度条。
有没有办法像这样更新进度条?