# .setBackgroundImage



## Kiloui (28. Februar 2009)

hi,
jedes mal wenn ich für eine komponente mittels .setBackgroundImage ein Hintergrundbild setzen will ... also z.b. für ein Panel mittels "this.setBackgroundImage(SWTResourceManager.getImage("banner.jpg"));"

bekomme ich die Fehlermeldung:

SWTResourceManager.getImage: Error getting image banner.jpg, java.lang.IllegalArgumentException: Argument cannot be null

Die Bilddatei befindet sich im scr Verzeichnis meines Projektes so wie es bei Eclipse auch der Fall sein soll...

Hat jmd eine Idee ?


----------



## jeipack (1. März 2009)

Hi
Müsste die Bilddatei nicht im bin Verzeichniss liegen?

Ich überprüfe mit folgendem Code gerne das Arbeitsverzeichniss einer App:

```
File f = new File(".");
System.out.println(f.getAbsolutePath());
```

Zudem würde ich das Bild zuerst laden und erst dann als Hintergrund zuweisen. So kannst du reagieren falls das Bild nicht geladen werden konnte.

Gruss


----------



## Kiloui (1. März 2009)

hi,
also Eclpise mekert wenn sich die datei nicht im scr verzeichnis befindet. Müsste also soweit stimmen...




> Zudem würde ich das Bild zuerst laden und erst dann als Hintergrund zuweisen. So kannst du reagieren falls das Bild nicht geladen werden konnte.



Wie mache ich das am besten ? 

Grüße
Kiloui


----------



## jeipack (1. März 2009)

Hier mal ein kleines Beispiel:

Das Bild liegt in: projektname/bin/images/myimage.jpg



```
String ref="images/myimage.jpg";
try {
//Kann bei jeder Klasse aufgerufen werden. Baut den Pfad mit Arbeitsverzeichnis+ref auf:
	URL url = this.getClass().getClassLoader().getResource(ref);
	if (url == null) {
		fail("Can't find ref: "+ref);
	}
//Image erstellen:
	Image img = Toolkit.getDefaultToolkit().getImage(url);
//BufferedImage erstellen:
	BufferedImage bufImg = ImageIO.read(url);
} catch (IOException e) {
	fail("Failed to load: "+ref);
}
void fail(String str) {
	System.err.println(str);
	System.exit(0);
}
```


----------



## TheBodo (1. März 2009)

Ohne euch ärgern zu wollen... leg die Datei mal in den Projektordner. Also weder src noch bin einfach in den Ordner der nen Namen deines Projekts trägt! Dann sollte es klappen!


----------



## Kiloui (1. März 2009)

Oh mann jetzt hab ichs....also ich benutze als GUI Builder das Eclipse PugIn Jigloo.
Wenn ich über Jigloo ein Hintergrundgrafik setzten will meckert es rum dass die Grafik im scr Verzeichnis liegen soll....was aber nicht t.

Kopiere ich die Grafik in das bin Verzeichnis funktionierts wunderbar.
(Kopieren in das Projekt Verzeichnis hilft jedoch nich)


----------



## TheBodo (1. März 2009)

Gut, kenne jigloo nich, aber bei meinen progs liegt immer alles im Projektverzeichnis (ohne Plugin) das klappt prima!


----------



## Kiloui (1. März 2009)

Mit Eclipse als IDE ?


----------

