当长时间下载完成时,我只想在我的框架的左下角有一个不确定的 JProgressBar 动画。
我浏览了很多教程,其中没有一个对我来说很清楚。我只是想让它在后台下载文件时设置动画。我尝试过的每一种方式,在下载完成之前它都不会为进度条设置动画。
我需要帮助知道在哪里放置我的 download() 调用。
class MyFunClass extends JFrame {
JProgressBar progressBar = new JProgressBar();
public void buttonClicked() {
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
progressBar.setIndeterminate(true);
progressBar.setVisible(true);
// Do I do my download() in here??
}});
// Do download() here???
progressBar.setVisible(false);
}
}
提前致谢!
解决方案
编辑:对于那些将来与我有类似问题的人,这是基本问题的基本解决方案。这不是我的逐字代码,而是一般草图。内部buttonClicked()
:
public void buttonClicked() {
class MyWorker extends SwingWorker(String, Object) {
protected String doInBackground() {
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
// Do my downloading code
return "Done."
}
protected void done() {
progressBar.setVisible(false)
}
}
new MyWorker().execute();
}