2013-05-26 4 views
0

Я не уверен, если я имею в виду в нужном месте с помощью этого кода, изображения Я пытаюсь получить доступ к озаглавлены Flower0.png и т.д.Java GetClass(). GetResource на PNG возвращающегося Null Pointer

Они расположены в том же каталоге, что и остальная часть моего кода для этого проекта. Этот класс находится в папке src под названием hangman.ui, а файлы .png находятся в папке с каталогом Resources.

Возможно, getClass().getResource Неправильный шрифт?

Это мой первый попыток поместить изображения в графический интерфейс.

Помощь очень ценится!

public WiltingFlowerRendererRemix(HangmanLogic logic) 
{ 
    panel = new JPanel(); 
    panel.setLayout(new BorderLayout()); 
    imageLabel = new JLabel(); 
    panel.add(imageLabel, BorderLayout.CENTER); 

    int numberOfImages = 10; 

    images = new ImageIcon[numberOfImages]; 
    for (int i = 0; i < numberOfImages; i++) 
    { 
     images[i] = new ImageIcon(getClass().getResource("Flower"+Integer.toString(i) + ".png")); 

    } 
} 
+0

Пути ресурсов должны начинаться с символа '/'. Попробуйте ''/Flower ''. – fge

+0

Спасибо, теперь я не могу заставить изображение быть видимым. Я установил его на видимое, я просто не знаю ... – jessicaeden

+0

вы также можете посмотреть .. http://stackoverflow.com/questions/2343187/loading-resources-using-getclass-getresource – awsome

ответ

1

Вы скажете, что изображения находятся в папке «Ресурсы»? Вы можете загружать изображения следующим образом:

BufferedImage image = ImageIO.read(getClass().getResource("/Resources/Flower0.png")); 
ImageIcon icon = new ImageIcon(image); 

Чтобы использовать его в графическом интерфейсе, вы можете использовать JLabel.

JLabel label = new JLabel(); 
label.setIcon(icon); 

А затем добавьте ярлык к панели, например.

+1

Имена файлов ресурсам НЕ нужно начинать с «/» (как утверждается в другом ответе); если они начинаются с /, то путь относится к некоторому пути в пути к классам; если они этого не делают, они относятся к каталогу, в котором живет этот класс. Таким образом, «x.png» без каких-либо слэшей будет искать в том же каталоге, что и класс, на который вызывается getResource, «y/x.png» будет искать в каталоге y, который является подкаталогом в каталоге, где класс живет. – arcy

Смежные вопросы