NullPointerException Resource

Raider05

Mitglied
Hallo

Bei folgendem Code bekomme ich die folgende Fehlermeldung.

Java:
import java.awt.*;
import javax.swing.*;

public class mymemory extends JFrame // hier heisst es: "The serializable class mymemory does not declare a static final serialVersionUID field of type long"
{
	private ImageIcon image1;
	private JLabel label1;
	private ImageIcon image2;
	private JLabel label2;
	
	
	mymemory() {
		setLayout(new FlowLayout());
		
		image1 = new ImageIcon(getClass().getResource("bild1.png"));
		label1 = new JLabel(image1);
		add(label1);
		
		image2 = new ImageIcon(getClass().getResource("bild2.png"));
		label2 = new JLabel(image2);
		add(label2);				
	}	
	
	public static void main(String args[]) {
		mymemory iMemory = new mymemory();
		iMemory.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		iMemory.setVisible(true);
		iMemory.pack();
		iMemory.setTitle("I am a title!");
	}
	
}

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at mymemory.<init>(mymemory.java:19)
at mymemory.main(mymemory.java:29)

Ich bin ein totaler Anfänger ... könnt ihr daraus erkennen, woran es liegt, dass ich das Programm nicht zum laufen bringe?
 
Zuletzt bearbeitet von einem Moderator:
Du hast einen NullPointer Exception Fehler. Das heisst deinem Objekt oder Variable ist nichts zugeweisen
Die Variable (oder das Objekt) ist null. Es zeigt auf etwas was nicht existiert.
Der Fehler findet in Zeile 19 statt. Ich denke mal der Pfad zum Bild ist nicht richtig.
 
Zuletzt bearbeitet:
Aktuell gibts du da nen relatives Verzeichnis an, das heißt er sucht auf Höhe der Klasse mymemory. Probiere mal:
Java:
image1 = new ImageIcon(getClass().getResource("/bild1.png"));
 
Man sollte niemals Dateien händisch in den Ordner bin/ legen. Der Ordner wird bspw. bei nem clean kommentarlos gelöscht.
 
Ja richtig, aber im bin/ Verzeichnis liegen die .class Dateien, die .java Dateien liegen im src/ Verzeichnis. Die Bilder gehören ebenfalls in einen source Folder (kann src/ sein), dann werden die Bilder beim kompilieren nach bin/ kopiert und beim exportieren deiner Anwendung mit ins jar File gepackt.
 

Zurück
Oben