我正在尝试通过网络上传几个文件。在上传过程中,需要一段不确定的时间。因此,我希望在上传期间显示一个不确定的jprogressbar。然而,问题在于我的jprogressbar和上传无法同时工作。我尝试在单独的线程中进行上传,同时将jprogressbar保留在EDT中。我尝试了几种不同的方法,其中一些如下: 1)实现Runnable,在run()中上传文件。进度条一直在EDT中。(没有起作用。) 2)有两个单独的线程,并分别处理上传和进度条。 (不起作用)。代码如下:
Thread oThread = new Thread(new Runnable() {
@Override
public void run()
{
progressBar.setIndeterminate(true);
progressBar.setVisible(true);
progressBar.validate();
}
});
Thread oThread1 = new Thread(new Runnable()
{
@Override
public void run() {
logger.info("Upload result from ***: "+ newport.upload(textbyte, wavbyte,xmlbyte, filename));
}
});
3) 然后我重新编写了整个代码,并尝试使用Executor采用不同的方法,像这样:
executor.execute(new Runnable() {
@Override
public void run() {
upload actions
SwingUtilities.invokeLater(new Runnable() {
progBar.setVisible(false);
});
}});
但是这些技术都没有起作用。我是新手,想知道是否必须完成所有这些步骤才能显示jprogressbar(不确定状态)。我想知道是否有更简单、更易于操作的方法。