Null-Zeiger-Ausnahme aus, wenn ein ImageIcon Hinzugefügt jbutton in NetBeans
Ein ImageIcon Hinzugefügt wird die Schaltfläche Eigenschaften unter Verwendung von NetBeans.
print.setFont(new java.awt.Font("Serif", 0, 14));
print.setIcon(new javax.swing.ImageIcon(getClass().getResource("/project/print.gif")));
print.setMnemonic('P');
print.setText("Print");
print.setToolTipText("Print");
Und wenn es kompiliert zeigt
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
at project.Editor.initComponents(Editor.java:296)
Was mache ich falsch?
Das Problem ist mit
Print.gif Bild befindet sich in /project/print.gif und der Fehler ist der gleiche wie oben.
Ihre Ressource getClass().getResource("/project/print.gif") möglicherweise null-pl check
Schritte für die überprüfung getClass().getResource("/project/print.gif").
was ist die Methode getClass ? es sollte YourClassName.diese.getClass()
getClass().getResource("/project/print.gif"))
. Ich Wette, dass das Bild, das du suchst kann nicht gefunden werden an dem Speicherort, den Sie versuchen zu zeigen.Print.gif Bild befindet sich in /project/print.gif und der Fehler ist der gleiche wie oben.
Ihre Ressource getClass().getResource("/project/print.gif") möglicherweise null-pl check
Schritte für die überprüfung getClass().getResource("/project/print.gif").
was ist die Methode getClass ? es sollte YourClassName.diese.getClass()
InformationsquelleAutor VenuMadhava | 2012-10-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Grund, dass Sie bekommen eine NullPointerException ist, weil aus irgendeinem Grund die Bild-Datei, die Sie versuchen, geben Sie nicht gefunden werden kann. Also die
getResource()
Methode eine null zurück.Als ein start, Lesen Sie über das hinzufügen von icons in diesem link: "So Verwenden Sie die Symbole"
Einer der Wege, die Sie vorschlagen, ist das erstellen einer Methode:
Den Vorteil, dass diese Methode, abgesehen davon, dass es eine utility-Methode, die Sie verwenden können, mehrere Male, wenn Sie ein Symbol hinzufügen möchten, ist, dass es zeigt Ihnen auch die Fehler, falls das Bild nicht gefunden werden konnte unter dem angegebenen Pfad.
Ich vermute stark, dass dies hat zu tun mit dem Weg, haben Sie zur Verfügung gestellt. Es wäre gut zu sehen an der Ordner-Struktur. Versuchen Sie, übergeben Sie den Pfad "project/print.gif"
InformationsquelleAutor Sujay
Den Ausdruck
getClass().getResource("/project/print.gif")
ruft die Methode getClass (geerbt indirekt von der Klasse Object ), um einen Verweis auf das Class-Objekt, stellt die "Editor-Klasse" (Klasse) Erklärung. Dieses Verweises wird dann verwendet, um die invoke-Methode der Klasse getResource gibt den Speicherort des Bildes als URL. Die ImageIcon-Konstruktor verwendet die URL, um das Bild zu suchen, dann lädt es in den Speicher. Die JVM lädt Klassen-Deklarationen in den Speicher, die über einen class-loader. Der class-loader weiß, wo jede Klasse lädt er befindet sich auf der Festplatte. Methode getResource verwendet das Class-Objekt der Klasse loader, um zu bestimmen, den Ort einer Ressource, wie z.B. eine image-Datei. Daher bekommst du eine NullPointerException und die Bild-Datei muss gespeichert werden, in der gleichen Lage wie die "Editor.class" Datei. Die Techniken, die Sie versucht, aus hier aktivieren Sie eine Anwendung zum laden von image-Dateien von Standorten, die relativ zu der class-Datei die LageDeswegen, Sie soll sich bewegen "print.gif" Datei "/Projektname/bin/packageName" - Ordner und versuchen
print.setIcon(new javax.swing.ImageIcon(getClass().getResource("print.gif")));
statt
print.setIcon(new javax.swing.ImageIcon(getClass().getResource("/project/print.gif")));
InformationsquelleAutor Neophyte