預設 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")
));
}
}