如何先用 JProgressBar 调用 class 然后 运行 主程序?

How to call a class with JProgressBar first & then run the main program?

我创建了一个单独的 class,它显示一个包含进度条的初始屏幕,并且我有一个单独的 class,我的主程序从这里开始。当程序启动时,我希望进度条先执行,然后在它关闭后,我希望我的主程序启动。

这是我的带有进度条的启动画面的代码

package MISC;

import javax.swing.*;
import java.awt.*;

public class SplashScreen extends JFrame {

    JLabel label;
    JProgressBar jProgessionBar;

    public SplashScreen() {

        label = new JLabel("Loading...");
        label.setBounds(210, 210, 100, 30);
        add(label);

        jProgessionBar = new JProgressBar(0, 100); //Length of progression bar
        jProgessionBar.setBounds(140, 250, 200, 25);
        jProgessionBar.setValue(0);
        jProgessionBar.setStringPainted(true);
        add(jProgessionBar);
        setSize(500,450);
        setLocation(500,200);
        setLayout(null);
    }

        public void load(){
            int i;
            try {
                for (i = 0; i < 100; i++) {
                    Thread.sleep(35);
                    jProgessionBar.setValue(i);
                }
                if (i == 100) {
                    new Main();
                    dispose();
                }
            } catch (Exception e) {
                System.out.println("Splash Screen Error");
            }
    }

    public static void main(String[] args) {

        SplashScreen f = new SplashScreen();
        f.setVisible(true);
        f.load();
        f.setResizable(false);
    }
}

使用 javax.swing.Timer 将是执行此操作的首选方法

class Example implements ActionListener {
  Timer t = new Timer(this, 35);
  JProgressBar jProgressBar = ...;
  private int i = 0;
  public void start() {
    t.start();
  }

  public void actionPerformed(ActionEvent ae) {
     i++;
     jProgessionBar.setValue(i);
     if (i == 100) {
       new Main();
       t.cancel();
     }
  }