java - Java Swing 中的线程不起作用

标签 java multithreading swing event-dispatch-thread jprogressbar

我有一些带有 for 循环的简单代码。在循环的每次传递中,我必须递增 JProgressBar;但是,这不起作用。见下文:

public void atualizarBarraDeProgresso(final int valorGeral, final int valorAtual) {
    Thread threadProgressoCarregamento = new Thread() {
        @Override
        public void run() {
             jProgressBarPersistindo.setValue(valorAtual);
        }
    };
    threadProgressoCarregamento.start();
}

我在如下循环中调用方法“atualizarBarraDeProgresso”:

progressBar.setMinimum(0);
progressBar.setMaximum(qtd);
for(int i = 0; i < qtd; i++) { 
    atualizarBarraDeProgresso(qtd, i + 1);
    doSomething();
}

但是我的进度条没有任何反应。

最佳答案

尝试在 for 语句之前添加一个线程。我希望它能起作用

    progressBar.setMinimum(0);
    progressBar.setMaximum(qtd);

    new Thread(){
        @Override
        public void run() {
            for(int i = 0; i < qtd; i++) { 
                atualizarBarraDeProgresso(qtd, i + 1);
                doSomething();
            }
        }
    }.start();

关于java - Java Swing 中的线程不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189282/

相关文章:

mysql - Hibernate/MySQL 并发问题

java - 如何将单个字段的数据获取到 SQLite 数据库的变量中?

java - 在 googleMap (android) 中更新位置

c# - 编写 C# TSR 的公认方法是什么?

c++ - 在 C++ 中计算一次后跨多个线程共享只读数据

java - 如何用Java保存和加载图像到mysql数据库?

java - 如何制作JFrame动画?

java - 使用 JComboBox 过滤 JTable 会生成 ArrayIndexOutOfBoundsException

c# - 使用 AsyncTask 的 Android ListView 过滤

java - 为什么java允许在方法体中定义类?