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

Java Swing 以相對路徑設定 JFrame 視窗圖示

     編輯:Java 相關知識

問題背景

預設 JFrame 左上角顯示 Java 咖啡杯圖示,專業應用需替換為自訂圖示。NetBeans 設計檢視中 iconImage/iconImages 屬性需傳入 java.awt.Image 實例,而非字串路徑。

解決方案

利用 Toolkit.getDefaultToolkit().getImage() 載入圖片,搭配 Class.getResource() 解析相對路徑:

setIconImage(
    Toolkit.getDefaultToolkit().getImage(
        getClass().getResource("images/logo.png")
    )
);

關鍵點解析

  • getImage 參數需為 URL 物件,getResource 回傳相對類別檔案的 URL,支援 JAR 內資源。
  • 相對路徑相對於編譯後的類別檔位置,而非原始碼位置。
  • 若圖片放在 src/images/logo.png,編譯至 classes/images/logo.png,類別在 com.example 包下,則路徑為 /images/logo.png(絕對類別路徑)或 ../images/logo.png(相對)。
  • 避免使用檔案系統絕對路徑,確保跨平台與打包後仍能正常載入。

完整範例

public class LoginFrame extends JFrame {
    public LoginFrame() {
        initComponents();
        // 設定視窗圖示
        setIconImage(Toolkit.getDefaultToolkit().getImage(
            getClass().getResource("/images/app-icon.png")
        ));
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved