java.lang.NullPointerException

Funresort

Erfahrenes Mitglied
Haii Leute ich bin neu in der Java Welt und auch neu in diesem Forum, ich hätte da ma ne Frage, wieso funktioniert dieser Code nicht? Imports sind vorhanden. Ich bekomme jedes mal den Fehler:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.ris.azubi.uebung.Grafik.main(Grafik.java:40) auf der abbildung zeile 10

Code:

Java:
public class Grafik
{ 
	  public static void main( String[] args ) 
	  { 
	    JFrame frame = new JFrame(); 
	    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
	    frame.getContentPane().setLayout( new FlowLayout() ); 
                   URL resource1 = Icon.class.getResource( "C:/Dokumente und           Einstellungen/scheibec/workspace/usbildung/src/com/ris/azubi/uebung/island.jpeg" ); 
	    URL resource2 = Icon.class.getResource( "C:/Dokumente und Einstellungen/scheibec/workspace/usbildung/src/com/ris/azubi/uebung/island.jpeg" ); 
	    final Icon icon1 = new ImageIcon( resource1 ); 
	    final Icon icon2 = new ImageIcon( resource2 ); 
	    final JButton button = new JButton( icon1 ); 
	    button.addActionListener( new ActionListener() { 
	      public void actionPerformed( ActionEvent e ) 
	      { 
	        button.setIcon( icon2 ); 
	      } 
	    } ); 
	 
	    frame.getContentPane().add( button ); 
	 
	    frame.pack(); 
	    frame.setVisible( true ); 
	  } 
	}
 
Zuletzt bearbeitet:
Moin,

tja, dann wird resource1 wohl null sein ....

Versuch es mal so :
Java:
URL resource1 = Icon.class.getResource( "C:\\Dokumente und Einstellungen\\scheibec\\workspace\\usbildung\\src\\com\\ris\\azubi\\uebung\island.jpeg" );

Bist Du sicher, dass der Pfad korrekt ist und die Datei auch dort liegt?

Gru?
Klaus
 
Hi.

Dein Pfad kann nicht gefunden werden, somit ist resource1 dann null.

Kann es sein, das du da ein \t im Pfad hast? Oder warum sind da soviele Leerzeichen in dem Pfad?

Außerdem, wenn die Resourcen irgendwo direkt auf der Festplatte liegen, kannst du die natürlich auch direkt angeben, ohne den Umweg über die getResource:
Java:
final Icon icon1 = new ImageIcon("C:/Dokumente und Einstellungen/scheibec/workspace/usbildung/src/com/ris/azubi/uebung/island.jpeg");
Ansonsten, falls die Resourcen in deinem Classpath sind, kannst du die Resourcen so finden:
Java:
URL resource1 = Icon.class.getResource( "/com/ris/azubi/uebung/island.jpeg" );
... und dann prüfen ob sie auch gefunden wurden.

Gruß
 
Zuletzt bearbeitet:
ne deutsch^^ des mit der ausbildung war nen tippfehler, aber macht auch keinen unterschied da ich es mit verschiedenen links ausprobiert hab
 
jetzt funktionierts hab jetzt nen anderes Coding

Java:
public class Grafik {
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		Icon icon = new ImageIcon(
		"C:\\Dokumente und Einstellungen\\scheibec\\Desktop\\island.gif" );
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Icon icon1 = new ImageIcon("C:\\Dokumente und Einstellungen\\scheibec\\Desktop\\island.gif");
		Icon icon2 = new ImageIcon("C:\\Dokumente und Einstellungen\\scheibec\\Desktop\\island.gif");
		JButton button = new JButton();
		button.setIcon(icon1);
		frame.add(button);
		frame.add(new JLabel(icon2));
		frame.add(button);
		frame.setVisible(true);

	}
}
 
Mach mal folgendes:
Java:
import java.io.File;
//[...]
File f = new File("Pfad Zur Datei");
System.out.println("Datei existiert: " + f.exists());
 

Neue Beiträge

Zurück