[英]Adding a GIF image in Java
我想添加一個gif
加載圖像,該圖像將顯示在Java面板上。 這是代碼。 第一個圖像是顯示的png
,但是第二個圖像是未顯示的gif
。
import java.awt.*;
import javax.swing.*;
public class Welcome extends JFrame{
public static void main(String[]args) {
Welcome welcome = new Welcome();
welcome.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
welcome.setSize(600, 350);
welcome.setVisible(true);
welcome.getContentPane().setBackground(Color.white);
}
private JLabel window1;
private JLabel window2;
private ImageIcon logo;
private ImageIcon Spinner;
public Welcome() {
super ("HALTON'S PHARMACY");
setLayout(new FlowLayout());
window1 = new JLabel("");
window1 = new JLabel(logo);
window2 = new JLabel(Spinner);
window1.setIcon(new ImageIcon("halton_logo.png"));
window2.setIcon(new ImageIcon("Spinner.gif"));
add(window1);
add(window2);
validate();
}
}
我可以想到三種可能的解釋:
您使用了錯誤的文件名。 (我注意到您已經將"Spinner.gif"
的文件名大寫了。這是一個錯誤嗎?)
運行命令時,該文件不存在於所需位置。 (我注意到您正在使用相對路徑。這意味着應用程序在運行時需要在應用程序的當前目錄中存在一個名為"Spinner.gif"
的文件。)
GIF文件格式錯誤或已損壞。
從文件系統加載應用程序(概念上)的內置圖像可能是一個壞主意。 最好將它們作為資源加載; 例如
URL url = this.getClass().getResource("/images/spinner.gif");
ImageIcon icon = new ImageIcon(url);
然后,您只需要確保所需的圖像在應用程序的JAR文件中或任何其他內容中即可。
即使它沒有在文檔中引用( ImageIcon(String filename)
),如果您遵循ImageIcon(String filename)
構造函數,您也會找到以下代碼。
image = Toolkit.getDefaultToolkit().getImage(filename);
if (image == null) {
return;
}
this.filename = filename;
this.description = description;
loadImage(image);
因此,通過某種猜測,這是因為找不到具有該特定名稱的文件。 如果顯示第一個圖像,則表示存在第一個圖像。 如果第二個未顯示,則表示第二個圖像不存在。
長話短說:檢查.gif文件的路徑/名稱是否正確。
一個簡單的System.out.println(new File("Spinner.gif").exists());
可能會做的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.