2014-01-27 2 views
0

Im Попытка загрузить мои изображения на Java, но при запуске кода ничего не появляется внутри моего JFrame.Cant Load Image на 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"); 

Если это не достаточно информации, я с удовольствием поставить остальная часть кода :) Thanks

+0

Покажите, что вы делаете с изображениями: как вы пытаетесь их отобразить. Поскольку (предположительно) программа не выходит из этого кода, вероятно, ОК. – Radiodef

+0

Итак, у вас есть это изображение 'GI_Background', но что вы с ним сделаете? Вы добавляете его на ярлык, вы его рисуете? Я не вижу, чтобы ты что-то делал с этим. –

+0

К моменту развертывания эти ресурсы, скорее всего, станут [тегом: embedded-resource]. В этом случае к ресурсу должен быть обращен «URL» вместо «Файл». См. [Info page] (http://stackoverflow.com/tags/embedded-resource/info) для тега, чтобы создать «URL». –

ответ

0

Я не совсем уверен, чего вы пытаетесь достичь ... , чтобы загрузить изображение с помощью метода, это будет b e достаточно:

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); 

Попробуйте это и не стесняйтесь снова АКС, если я не работаю для вас, или это еще не хочет, чтобы вы хотите :)

1

Если изображение является частью приложения, не использовать Файл, но используйте механизм ресурсов java.

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

URL-адрес ресурса вернет null, если не найден. Если приложение упаковано в .jar, вы можете открыть его с помощью 7zip/WinZip или около того и проверить путь. Он должен быть чувствительным к регистру и использовать / (а не обратную косую черту).