import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;
/**
* 程序啟動模擬進度條
* 配置操作:
* 1、更換url的test圖片。圖片的路徑和.java文件壹級
* 2、showFrame裏,new出下壹個JFrame
* 3、main方法裏的new可以帶到上壹個JFrame
* @author Administrator
*
*/
public class ProgrammStart extends JWindow implements Runnable {
Thread splashThread; //進度條更新線程
JProgressBar progress; //進度條
public ProgrammStart() {
Container container=getContentPane(); //得到容器
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); //設置光標
URL url = getClass().getResource("test.jpg"); //圖片的位置
if(url != null){
container.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER); //增加圖片
}
progress = new JProgressBar(1,100); //實例化進度條
progress.setStringPainted(true); //描繪文字
progress.setString("程序加載中,請稍候......"); //設置顯示文字
progress.setBackground(Color.white); //設置背景色
container.add(progress,BorderLayout.SOUTH); //增加進度條到容器上
Dimension screen = getToolkit().getScreenSize(); //得到屏幕尺寸
pack(); //窗口適應組件尺寸
setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2); //設置窗口位置
}
public void start(){
this.toFront(); //窗口前端顯示
splashThread=new Thread(this); //實例化線程
splashThread.start(); //開始運行線程
}
public void run(){
setVisible(true); //顯示窗口
try {
for (int i=0;i<100;i++){
Thread.sleep(100); //線程休眠
progress.setValue(progress.getValue()+1); //設置進度條值
}
}
catch (Exception ex) {
ex.printStackTrace();
}
dispose(); //釋放窗口
showFrame(); //運行主程序
}
static void showFrame(){
//實例化JFrame對象
}
public static void main(String[] args) {
new ProgrammStart().start();
}
}