首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 應用程式啟動畫面實作:Splash Screen 完整教學

     編輯:Java 相關知識

需求場景

應用程式啟動時顯示圖片畫面,執行初始化工作(載入資源、連線資料庫、建構 UI)期間保持可見,初始化完成後自動關閉並進入主視窗。

實作步驟

1. 建立 Splash 視窗

private Window splashWindow;
private void prepareSplash() {
    Toolkit tk = Toolkit.getDefaultToolkit();
    splashWindow = new Window(this); // 無標題列、無邊框
    Image img = tk.getImage("images" + File.separator + "splash.gif");
    ImageCanvas canvas = new ImageCanvas(img); // 自訂 Canvas 繪圖
    splashWindow.add(canvas, "Center");
    // 置中螢幕
    Dimension scr = tk.getScreenSize();
    int w = img.getWidth(this), h = img.getHeight(this);
    splashWindow.setLocation(scr.width/2 - w/2, scr.height/2 - h/2);
    splashWindow.setSize(w, h);
}
ImageCanvas 為繼承 Canvas 並覆寫 paint(Graphics g) 呼叫 g.drawImage(img, 0, 0, this) 的簡易類別。

2. 顯示 Splash

private void startSplash() {
    splashWindow.setVisible(true);
    splashWindow.toFront();
}

3. 主視窗初始化流程

public MyMainFrame() {
    prepareSplash();
    startSplash();
    // 執行耗時初始化:資料庫連線、載入配置、建構複雜 UI 元件...
    initDatabase();
    initUIComponents();
    loadResources();
    // 全部完成後關閉 Splash
    stopSplash();
    // 顯示主視窗
    setVisible(true);
}

4. 關閉 Splash

private void stopSplash() {
    splashWindow.dispose();
}

關鍵細節

  • 使用 Window 而非 Frame,避免標題列與邊框干擾視覺效果。
  • 圖片載入為非同步,ImageCanvas 需實作 ImageObserver 或使用 MediaTracker 確保繪製時圖片就緒。
  • 初始化工作若極耗時,建議另開執行緒執行,Splash 執行緒定期 repaint() 保持回應。
  • JDK 6+ 可直接使用 SplashScreen 類別簡化實作(manifest 指定 SplashScreen-Image)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved