进度条停止几秒钟

时间:2018-05-13 11:12:48

标签: java multithreading swing jprogressbar

我正在努力实现的目标:

我想使用不同速度的多个进度条(JFrame)制作JProgressBar

问题

当一个进度条的值为25,50或75时,它应该停止当前进度条2秒。 但是,截至目前,Thread.sleep()将停止整个应用。

Timer timer;

ActionListener listener;
listener = new ActionListener() {
    int counter = 0;
    int delta = 1;
    int min = 0;
    int max = 100;

    public void actionPerformed(ActionEvent ae) {
        counter += delta;
        if (jRadioButton1.isSelected()) {
            if (counter < min || counter > max) {
                delta *= -1;
            }
            counter = Math.min(max, Math.max(min, counter));
            jjProgressBar.setValue(counter);
            jjProgressBar2.setValue(counter);
            jjProgressBar3.setValue(counter);
            if (jProgressBar.getValue() == 25 || jProgressBar.getValue() == 0 || jProgressBar.getValue() == 50 || jProgressBar.getValue() == 75 || jProgressBar.getValue() == 100) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Sim1.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
};
timer = new Timer(100, listener);
timer.start();

1 个答案:

答案 0 :(得分:0)

您可以随时multithread进度条和Thread.sleep()个。

Thread.sleep()在您的特定上下文中没有任何意义,因为它只是一个控制应该是MVC /多线程应用程序的单一应用程序。