2014-01-27 149 views
0

Im嘗試將我的圖像加載到Java,但運行代碼時,在我的JFrame中沒有任何內容出現。在Java上無法加載圖像(BlueJ)

的方式即時通訊做它呼籲從我的主我的圖片功能:

import java.awt.*;    // Graphics stuff from the AWT library, here: Image 
    import java.io.File;   // File I/O functionality (for loading an image) 
    import javax.swing.ImageIcon; // All images are used as "icons" 



    public class GameImage 
    { 
    public static Image loadImage(String imagePathName) { 

    // All images are loades as "icons" 
    ImageIcon i = null; 

    // Try to load the image 
    File f = new File(imagePathName); 


    if(f.exists()) { // Success. Assign the image to the "icon" 
     i = new ImageIcon(imagePathName); 
    } 
    else {   // Oops! Something is wrong. 
     System.out.println("\nCould not find this image: "+imagePathName+"\nAre file  name and/or path to the file correct?");    
     System.exit(0); 
    } 

    // Done. Either return the image or "null" 
    return i.getImage(); 

} // End of loadImages method 

} 

然後在這裏調用它:

 GI_Background = GameImage.loadImage("Images//background.jpg"); 
    GI_DuskyDolphin = GameImage.loadImage("Images//DuskyDolphin.jpg"); 

如果這是不夠的信息,我會很樂意提供其餘的代碼:) 謝謝

+0

顯示您對圖像所做的操作:如何嘗試顯示圖像。由於(大概)該程序不會退出此代碼可能是好的。 – Radiodef

+0

好的,你有這個圖像'GI_Background',但你用它做什麼?你把它添加到標籤,你畫嗎?我沒有看到你對它做任何事情。 –

+0

在部署時,這些資源可能會變成[tag:embedded-resource]。在這種情況下,資源必須通過'URL'而不是'File'訪問。查看標籤的[info page](http://stackoverflow.com/tags/embedded-resource/info),以獲得一個「URL」。 –

回答

0

我不太清楚你試圖實現什麼... 加載圖像的方法,這將b足夠:

private Image loadImage(String fileName){ 
    return (new ImageIcon(fileName)).getImage(); 
} 

之後,我會創建一個JLabel與圖像作爲背景;

ImageIcon image = getImage(filename);  

JLabel imageLabel = new JLabel(image); 
imageLabel.setSize(image.getIconHeight, image.getIconWidth); 

JFrame frame = new JFrame(); 
frame.add(imageLabel); 

試試這個,隨時再次AKS如果我不爲你工作,這就是還是不希望你想:)

1

如果圖像是應用程序的一部分,不使用文件但使用java資源機制。

URL imageUrl = getClass().getResource("/Images/background.jpg"); 
    return new ImageIcon(imageURL).getImage(); 

未找到資源URL將返回空值。 如果應用程序打包成一個.jar,你可以用7zip/WinZip左右打開,並檢查路徑。它必須區分大小寫,並使用/(不反斜槓)。