我創建了一個單獨的類,它顯示一個包含進度條的初始螢屏,我有一個單獨的類,我的主程式從這里開始。當程式啟動時,我希望進度條先執行,然后在它關閉后,我希望我的主程式啟動。
這是我的帶有進度條的啟影片面的代碼
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);
}
}
uj5u.com熱心網友回復:
使用 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();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/477989.html
