Я получаю NullPointerException
при запуске кода ниже. Я не знаю, почему я это получаю, и это мешает мне развиваться дальше.Java: NullpointerException by
MyImage.java:
import java.awt.Image;
import java.awt.Toolkit;
public class MyImage {
private String name;
private Image img = null;
public MyImage(String n) {
this.name=n;
}
public Image get() {
if (img == null) {
img = Toolkit.getDefaultToolkit()
.createImage(getClass()
.getClassLoader()
.getResource(name));
}
return (img);
}
}
PaintableImage.java:
package name.burre.jan.animationGame;
import java.awt.Graphics;
import javax.swing.JPanel;
public class PaintableImage extends JPanel implements Paintable {
/**
*
*/
private static final long serialVersionUID = 1L;
MyImage mi;
public PaintableImage (MyImage m) {
this.mi = m;
}
public PaintableImage(String name) {
this.mi = new MyImage(name);
}
@Override
public void paintTo(Graphics g) {
g.drawImage(mi.get(),0,0,this);
}
public static void main (String[] args) {
PaintableImage pi = new PaintableImage("img/Flower.jpg");
System.out.println(pi.mi.get().getHeight(pi));
}
}
Мои MyImage.class и мой PaintableImage.class ют в одной папке, и в этой папке лежит IMG-папку, где мой Flower.jpg находится. Любые предложения?
Просьба представить полное сообщение об исключении. – Turing85
Трассировка стека будет очень полезна. – rodit
Мое предположение без stacktrace заключается в том, что оно не находит изображение на 'img/Flower.jpg'. Это приводит к тому, что ваш 'get()' возвращает null (или, возможно, выдает сам NPE), что затем вызывает g.drawImage() ', чтобы выбросить NPE. Но stacktrace действительно поможет. – user489041