NO IMAGE

類似於eclipse的進度條載入程式碼,很不錯的效果。如下圖:

轉載請務必註明出處:http://www.zuidaima.com/share/1550463409130496.htm

package com.zuidaima.swing;
import javax.swing.*;
import java.awt.*;
import java.net.*;
public class JWindowDemo extends JWindow implements Runnable {
Thread splashThread; // 進度條更新執行緒
JProgressBar progress; // 進度條
public JWindowDemo() {
Container container = getContentPane(); // 得到容器
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); // 設定游標
URL url = getClass().getResource("login.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 frame = new JFrame("程式啟動介面演示"); // 例項化JFrame物件
frame.setSize(300, 200); // 設定視窗尺寸
frame.setVisible(true); // 視窗可視
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 關閉視窗時退出程式
}
public static void main(String[] args) {
JWindowDemo splash = new JWindowDemo();
splash.start(); // 執行啟動介面
}
}