【发布时间】:2014-01-06 04:39:32
【问题描述】:
我正在尝试通过网络上传一些文件。上传时将花费不确定的时间。所以希望在上传过程中显示一个不确定的 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(不确定)。我想知道是否有更简单和更容易的方法来做到这一点。
【问题讨论】:
-
您是否尝试过
How to Use Progress Bars上的 Swing 教程中的示例? -
@camickr 几乎所有人。现在当我搜索 jprogressbar 问题时,谷歌返回的所有网站都显示为访问过的链接。
-
这不能回答我的问题。 Swing 教程有一个工作示例。为什么您认为我们在此处发布的任何示例都与教程中的示例有所不同?您还没有就您在教程中感到困惑的代码提出具体问题。
标签: java multithreading jprogressbar