.setBackgroundImage

Kiloui

Mitglied
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 ?
 
Hi
Müsste die Bilddatei nicht im bin Verzeichniss liegen?

Ich überprüfe mit folgendem Code gerne das Arbeitsverzeichniss einer App:
Java:
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
 
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
 
Hier mal ein kleines Beispiel:

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


Java:
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);
}
 
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!
 
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)
 
Gut, kenne jigloo nich, aber bei meinen progs liegt immer alles im Projektverzeichnis (ohne Plugin) das klappt prima!
 
Zurück