如何先用 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();
}
}
我创建了一个单独的 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();
}
}