NullPointerException

BlakkAxe

Mitglied
Hallo liebe Community,
ich habe folgendes Problem:
Java:
package animationGame;
class AnimationPanel extends SimpleAnimation {
 @Override public void doOnTick() {
  move();
  doChecks();
  repaint();
 }
 public void doChecks(){
  for(GameObject g1:gos)
   for(GameObject g2:gos)
	if(g1 != g2 && g1.touches(g2))
	 reactWhenTouching(g1,g2);	
 }
 void reactWhenTouching(GameObject g1,GameObject g2) {
	g1.turn(); g1.move();
	g2.turn(); g2.move();
 }
 public static void main(String [] args)  {
  MovablePanel p = new AnimationPanel();
  p.gos.add(new MovableImage("ausrufe.png",0,0,1,1));
  p.gos.add(new MovableImage("info.png",200,200,-1,-1));
  ShowInFrame.show(p);
 }
}
So sieht meine Klasse aus und
Fehlermeldung hat gesagt.:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at animationGame.GeometricImage.<init>(GeometricImage.java:10)
at animationGame.MovableImage.<init>(MovableImage.java:14)
at animationGame.AnimationPanel.main(AnimationPanel.java:20)
so die Fehlermeldung.
Ich habe Windows 8 64-Bit, und benutze die Programmierumgebung Eclipse.
Hier ist die Klasse MovableImage, falls die weiterhilft:
Java:
package animationGame;
import javax.swing.*;
class MovableImage extends GeometricImage implements GameObject {

 Vertex deltaPos = new Vertex(0,0);
 public Vertex getDeltaPos() {return deltaPos;}
 public void setDeltaPos(Vertex v) {deltaPos = v;}
 
 public MovableImage(String name, double x, double y) {
  super(name, x, y);	 
 }
 
 public MovableImage(String name, double x, double y, double dX, double dY) {
  super(name, x, y);
  deltaPos = new Vertex(dX, dY);
 }
 public MovableImage(ImageIcon icon, double x, double y, double dX, double dY) {
  super(icon, x, y);
  deltaPos = new Vertex(dX, dY);
 }
 
 public void move() {pos.addMod(deltaPos);}
 public void turn() {deltaPos.skalarMultMod(-1);}
 public boolean isLeftOf(GameObject that) {
  return this.getPos().x + this.getWidth() < that.getPos().x;	 
 }
 public boolean isAbove(GameObject that) {
  return this.getPos().y + this.getHeight() < that.getPos().y;	 
 }
 public boolean touches(GameObject that) {
  if(this.isLeftOf(that)) return false;
  if(that.isLeftOf(this)) return false;
  if(this.isAbove(that)) return false;
  if(that.isAbove(this)) return false;
  return true;
 }
 public boolean isLargerThan(GameObject that) {
  return getWidth() * getHeight() > that.getWidth() * that.getHeight();	 
 }
}
Ich nehme an, dass Eclipse den Pfad der Bilder nicht findet. Die Bilder liegen in
Pfad hat gesagt.:
D:\Eclipse\projects\Java will nur spielen
der Workspace in
Pfad hat gesagt.:
D:\Eclipse\projects
Ich habe dieses Thema schon einmal erstellt, doch dieser blieb ca. 5 Monate lang unberührt, sodass er gelöscht wurde. Dabei kamen einige Antworten, doch keine von diesen löste das Problem.
Danke schon mal im Voraus für die Antworten ;) .
 
Zuletzt bearbeitet:

didum

Mitglied
Die GeometricImage Klasse wäre interessant, da dort die NPE auftritt bzw. ausgelöst wird. Die anderen Klassen sagen nicht so viel aus außer das du einen Namen und zwei double-Werte übergibst.
 

turtle

Top Contributor
Wie dium richtig anmerkte, benötigen wir den Quelltext von GeometricImage, denn darin wird offensichtlich ein ImageIcon instanziert und da geht was schief.

Meine Tipp ist, das du mal in meinen Blog-Eintrag schauen solltest.
 

BlakkAxe

Mitglied
Sorry dass dieser Thread so untergegangen ist, dank dem grossen Stress in der 9.Klasse blieb Java leider ein wenig auf der Strecke liegen :oops: .
Hier ist die Klasse GeometricImage:
Java:
package animationGame;
import javax.swing.*;

public class GeometricImage extends GeometricObject 
                            implements Paintable{
  ImageIcon icon;

  public GeometricImage(String fileName,double x,double y){
    super(new Vertex(x,y));
    icon=new ImageIcon(getClass().getClassLoader().getResource(fileName));
    init();
  }
  public GeometricImage(ImageIcon icon,double x,double y){
    super(new Vertex(x,y));
    this.icon=icon;
    init();
  }

  void init(){
    width =icon.getImage().getWidth(icon.getImageObserver());
    height=icon.getImage().getHeight(icon.getImageObserver());
  }

  public void paintTo(java.awt.Graphics g){
    icon.paintIcon(null,g,(int)pos.x,(int)pos.y);
  }

  public static void main(String [] args){
    GeometricImage gi = new GeometricImage("test.png",10,10);
    System.out.println(gi.width);
    System.out.println(gi.height);
    ShowInFrame.show(new PaintablePanel(gi)); 
  }
}
 

njans

Top Contributor
Java:
icon=new ImageIcon(getClass().getClassLoader().getResource(fileName));

Da wird dann wohl deine Datei nicht gefunden.
 

VfL_Freak

Top Contributor
Moin,

hmm, hier wird wohl die Pfadangabe falsch sein !!
Was genau steht denn auf "fileName" ???:L
Mal ggf. mit dem Debugger prüfen!

Und wo liegt (stattdessen) die Datei, die Du laden willst ?

Gruß
Klaus
 

BlakkAxe

Mitglied
Schon wieder 1 Monat vergangen, ich bin wirklich faul :oops: .
Also, diese Klassen stammen alle vom Buch "Java will nur spielen" von Sven Eric Panitz. Auf meinem alten Notebook haben die Klassen einwandfrei funktioniert, jedoch auf meinem Desktop PC nicht mehr.
Meine Bilddateien liegen sowohl in
Dateipfad hat gesagt.:
D:\Eclipse\projects\Java will nur spielen\bin\animationGame
als auch in
Dateipfad hat gesagt.:
D:\Eclipse\projects\Java will nur spielen\src\animationGame
In bin liegen die CLASS-Dateien und in src die JAVA-Dateien. Dabei ist animationGame das Package.
 

BlakkAxe

Mitglied
Es tut mir leid, aber wenn ich deine Klasse JarTest (bzw. bei mir ImageTest) ausführe erhalte ich wieder eine NullPointerException:
NullPointerException hat gesagt.:
Could not find file: /resources/images/info.png
Exception in thread "main" java.lang.NullPointerException
at test.ImageTest.<init>(ImageTest.java:16)
at test.ImageTest.main(ImageTest.java:23)
Die Datei info.png liegt hier:
Code:
D:\Eclipse\projects\test\src\resources\images
Es kann sein, dass ich mich gerade ein wenig dumm anstelle, aber ich bin halt noch Anfänger :) .
 

BlakkAxe

Mitglied
Ich werde ab heute Abend 3 Wochen nach Italien verreisen :D und habe dort evtl. keinen Internetanschluss, deshalb werde ich wahrscheinlich erst in 3 Wochen wieder aktiv in diesem Thema sein.
 

turtle

Top Contributor
Nun, jetzt aber...

Mein Programm muss funktionieren:D

Ich glaube, das das Problem vielleicht ganz woanders liegt, denn du schriebst am Anfang
In bin liegen die CLASS-Dateien
und das ist nicht ganz richtig. Denn darin muss auch das Verzeichnis resources, darin das Verzeichnis images und dann darin die Datei info.png enthalten sein.

Dieses ist normales Verhalten von Eclipse, das ALLE Klassendateien aber auch alle anderen Dateien aus dem src-Zweig in das bin-Verzeichnis kopiert werden.
 
Zuletzt bearbeitet:

BlakkAxe

Mitglied
So, bin wieder aus dem Urlaub zurück, werde aber wahrscheinlich nur am Wochenende zu Java kommen.
Danke turtle, dein Programm ImageTest läuft nun :D. Aber meins nicht. Wenn ich die Klasse GeometricImage
Java:
package animationGame;
import javax.swing.*;

public class GeometricImage extends GeometricObject 
                            implements Paintable{
  ImageIcon icon;

  public GeometricImage(String fileName,double x,double y){
    super(new Vertex(x,y));
    icon=new ImageIcon(getClass().getClassLoader().getResource(fileName));
    init();
  }
  public GeometricImage(ImageIcon icon,double x,double y){
    super(new Vertex(x,y));
    this.icon=icon;
    init();
  }

  void init(){
    width =icon.getImage().getWidth(icon.getImageObserver());
    height=icon.getImage().getHeight(icon.getImageObserver());
  }

  public void paintTo(java.awt.Graphics g){
    icon.paintIcon(null,g,(int)pos.x,(int)pos.y);
  }

  public static void main(String [] args){
    GeometricImage gi = new GeometricImage("/resources/images/info.png",10,10);
    System.out.println(gi.width);
    System.out.println(gi.height);
    ShowInFrame.show(new PaintablePanel(gi)); 
  }
}
starte, erhalte ich wieder folgende NullPointerException:
NullPointerException hat gesagt.:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at animationGame.GeometricImage.<init>(GeometricImage.java:10)
at animationGame.GeometricImage.main(GeometricImage.java:29)
Die Datei info.png liegt in
Dateipfad hat gesagt.:
D:\Eclipse\projects\Java will nur spielen\bin\resources\images\info.png
Ich bin im Moment einfach nur verwirrt, da die Datei eigentlich im analogen Pfad wie info.png im test-Package liegt. :(

P.S. Der Link zu deinem Blog-Eintrag funktioniert nicht mehr. Kannst du den neuen posten dass ich das, was dort steht, nochmal lesen kann? :)
 
Zuletzt bearbeitet:

turtle

Top Contributor
Hoffe, du hattest einen erholsamen Urlaub:)
Die Fehlermeldung
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at animationGame.GeometricImage.<init>(GeometricImage.java:10)
at animationGame.GeometricImage.main(GeometricImage.java:29)
sagt, das in Zeile 10 von GeometricImage im Konstruktor("<init>") das Problem auftritt.

Wenn dein geposteter Code zur Anzeige passt, ist es die Zeile
Code:
[COLOR=#3E3E3E]icon[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#000000][B]new[/B][/COLOR][URL="http://www.java-forum.org/redirect-to/?redirect=http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26q%3Dallinurl%253Aimageicon%2Bjava.sun.com%26btnI%3DI%2527m%2520Feeling%2520Lucky"][COLOR=#003399]ImageIcon[/COLOR][/URL][COLOR=#009900]([/COLOR][COLOR=#3E3E3E]getClass[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#3E3E3E].[/COLOR][COLOR=#006633]getClassLoader[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#3E3E3E].[/COLOR][COLOR=#006633]getResource[/COLOR][COLOR=#009900]([/COLOR][COLOR=#3E3E3E]fileName[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
Und hier spricht vieles dafür das über getResource null zurückkommt. Da kann ich echt wenig zu sagen, ausser das du prüfen solltest, welchen fileName du da reinreichst.
Java:
    protected ImageIcon createImageIcon(String path, String description) {
        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL, description);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }
Ich lade immer über solch eine Hilfsroutine meine Resourcen und so kannst du im Debugger nachschauen, ob da imgURL wirklich null ist.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben