gpt4 book ai didi

java - Jprogressbar 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:28 25 4
gpt4 key购买 nike

我正在尝试通过网络上传一些文件。上传时需要不确定的时间。所以希望在上传过程中显示不确定的 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(不确定)。我想知道是否有更简单、更容易的方法来做到这一点。

最佳答案

您实际上并没有在您发布的代码中的任何位置设置进度条的值。

此外,这看起来是使用 SwingWorker 的好案例,它将在不同的线程上执行工作,然后向您反馈进度。好消息是这些回调已经发生在 Swing 线程上。

这个 SwingWorker 示例甚至包括设置进度条:

http://docs.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html

关于java - Jprogressbar 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20650738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com