我编写了一个程序,它使用默认java运行时的progressbar类。它完美地工作,除了它只工作一次。我用它来显示各种图像加载到我的GUI中,它在启动时工作正常。但是,一旦我再次调用它,它就会显示一个没有内容的JFrame。我可以拖动JFrame和所有东西,只是它不会显示任何东西。这是特殊的,因为它在第一次运行时起作用,但之后没有。这是我的代码:
public void prefetch (){
try{
pageURLs = mangaEngine.getPageList();
monitor = new ProgressMonitor(parent, "Loading Chapter..,", null, 0, mangaEngine.getPageList().length);
pages = new StretchIconHQ[pageURLs.length];
//Resets page counter to first page by fetching pages in reverse order
monitor.setMaximum(pageURLs.length-1);
for(int i = pageURLs.length-1; i>=0; i--){
pages[i] = mangaEngine.loadImg(pageURLs[i]);
monitor.setProgress(pageURLs.length-1-i);
monitor.setNote("Loading Image:" + (pageURLs.length-1-i) + " of " + (pageURLs.length-1));
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
关于如何修复它的任何想法?
答案 0 :(得分:1)
您需要在后台线程中运行长时间运行的代码,例如SwingWorker创建的代码。
事实上,Progress Monitor Tutorial描述了如何做到这一点: