# GrafikDatei .png in GUI einbinden



## theotoast (3. Dez 2015)

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?


```
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:




Vielen Dank für jede Hilfe.

theotoast


----------



## Thallius (3. Dez 2015)

Ü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


----------



## theotoast (3. Dez 2015)

Okay ich habe    Logo()      jetzt zu:    setzeLogo()    verändert.
Aber das ändert ja nichts an der Funktionalität des Codes.


----------



## Thallius (3. Dez 2015)

Der erste Teil meiner Antwort war eigentlich auch der wichtige...


----------



## theotoast (3. Dez 2015)

Okay, ich habe das dann jetzt nochmal ein bisschen aufgeteilt, dass nicht mehr so viel in einer Zeile steht.
 

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"


----------



## Thallius (3. Dez 2015)

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.


----------



## theotoast (3. Dez 2015)

Und wie kann ich das Problem dann jetzt lösen? Es muss ja wohl irgendwie gehen :O


----------



## Harry Kane (3. Dez 2015)

theotoast hat gesagt.:


> Die Bild Datei liegt direkt im src Ordner,


Lautr Screenshot liegt sie in src\test.


----------



## theotoast (3. Dez 2015)

Harry Kane hat gesagt.:


> Lautr Screenshot liegt sie in src\test.



nein ist es nicht. Der Ordner "test" ist zugeklappt. das ist nur eingerückt, da es eine Datei ist und kein Ordner. Es liegt zu 100% im Ordner "src".


----------



## Thallius (3. Dez 2015)

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.


----------



## theotoast (3. Dez 2015)

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!


```
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 


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

verkleinert werden!

Vielen Dank
Thread kann geschlossen werden


----------

