GrafikDatei .png in GUI einbinden

theotoast

Mitglied
Hallo, ich habe schon sehr viel gelesen aber nichts hat mir weiter geholfen. Ich bin quasi neu in Java (kenne die Grundlagen) und möchte jetzt eine Grafik namens Logo.png in eine bereits erstellte Gui einbinden. Die Gui hat mehrere Reiter, mit verschiedenen Optionen. In jedem Fenster soll das Logo an der selben Stelle angezeigt werden. Ich habe jetzt angefangen im Reiter "AvailPanel" den Code zum einfügen der Grafik zuschreiben. Es kommt aber nimmer eine NPE (--> NullPointerException). Könnt ihr mir sagen wo in diesen Zeilen der Fehler liegt?

Java:
public void Logo() {
label1 = new JLabel(new ImageIcon(this.getClass().getResource("Logo.png")));
}

Hier mal ein Screenshot von meinem bisherigen Code zum implementieren des Bildes:

Bildschirmfoto vom 2015-12-03 081701.png


Vielen Dank für jede Hilfe.

theotoast
 
Überleg Dir mal was alles in der einen Zeile in Deiner Methode Logo() schief gehen kann und was davon du alles absicherts (Nur so als Tipp: Du sicherst gar nichts ab). Wenn Du die Grundlagen von Java kennst, dann solltest Du auch wissen, dass Methodennamen mit Ausnahme der Konstruktoren immer im Camelcase geschrieben werden. Logo() ist also verkehrt.

Gruß

Claus
 
Okay, ich habe das dann jetzt nochmal ein bisschen aufgeteilt, dass nicht mehr so viel in einer Zeile steht.
Bildschirmfoto vom 2015-12-03 090239.png

path = "Logo.png" ist als String angelegt.
Die Bild Datei liegt direkt im src Ordner, somit sollte das laden hieraus auch kein Problem sein.
Der Fehler liegt immer noch wie vorher in der selben Zeile bei "ImageIcon"
 
Ich wette einfach mal das wenn du überprüfen würdest was getResource zurück gibt, du einen Nullpointer bekommen würdest, was dann komischerweise genau Deinem Problem entspricht.
 
Du must Deiner IDE aber auch mitteilen, dass Logo.png Teil des Bundles ist sonst funktioniert das nicht. Wie das geht ist von der IDE abhängig.
 
Habe es jetzt geschafft das Bild einzufügen. Der Fehler war, dass ich als Pfad "src/logo.png" angeben musste. Habe außerdem einen anderen Quellcode verwendet, aber so geht es jetzt!

Code:
    public void setzeLogo() {
        ImageIcon image = new ImageIcon("src/Logo.png");
        JLabel label = new JLabel(image);
        add(label, BorderLayout.EAST);
    }

PS:
Grafik kann ohne skalieren mit

Code:
image.setImage(image.getImage().getScaledInstance(x ,y , Image.SCALE_SMOOTH));

verkleinert werden!

Vielen Dank
Thread kann geschlossen werden 🙂
 
Zuletzt bearbeitet:

Zurück
Oben