有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在进度条上停留几秒钟

我想要实现的是:

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

问题

当一个进度条的值为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) 个答案

  1. # 1 楼答案

    你总是可以multithread你的进度条和Thread.sleep()它们各自

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