当进行长时间下载时,我希望在框架的左下角有一个不确定进度条进行动画展示。
我查看了许多教程,但都不清楚。我只是想在后台下载文件时让它动起来。我尝试的每种方式,在下载完成之前都不能使进度条动起来。
我需要帮助知道在哪里放置我的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();
}