Ich stehe mal wieder am alten Ding... ich versuche eine Bilddatei zu laden, doch irgendwie klappt dies einfach noch immer nicht richtig. Ich habe immer kurzfristige, unschöne Lösungen gefunden, die jedoch nicht gut genug sind.
Aus Quaxlis Tutorial hab ich folgende Methode:
[Java]
public BufferedImage[] getSprite(String path, int column, int row){
URL location = getURLfromRessource(path);
BufferedImage source = null;
source = (BufferedImage) sprites.get(location);
if(source == null){
try {
source = ImageIO.read(location);
}catch(IOException e){
System.out.println("Error occured while loading image: " + e);
return null;
}
sprites.put(location, source);
}
int width = source.getWidth() / column;
int height = source.getHeight() / row;
BufferedImage[] pics = new BufferedImage[column * row];
int count = 0;
for(int i = 0; i < row; i++){
for(int a = 0; a < column; a++){
pics[count] = source.getSubimage( a * width, i * height, width, height);
count++;
}
}
return null;
}
[/Java]
Dazu noch diese Methode:
[Java]
public URL getURLfromRessource(String path){
return getClass().getClassLoader().getResource(path);
}
[/Java]
Ich rufe die Methode folgendermassen auf:
[Java]
car = new Car(lib.getSprite("car.gif", 4, 1), 400, 300, 100, this);
[/Java]
Die gif-Datei ist folgendermassen gespeichert:
Screenshot des package explorers
Wenn ich das Programm das starte bekomme ich diese Fehlermeldung:
So wie ich das verstanden habe gibt er an, dass er die Datei nicht findet. Ich kann mir aber wirklich nicht vorstellen warum er diese Datei nicht finden kann. Müsste ich diese irgendwie anders einbinden?
Aus Quaxlis Tutorial hab ich folgende Methode:
[Java]
public BufferedImage[] getSprite(String path, int column, int row){
URL location = getURLfromRessource(path);
BufferedImage source = null;
source = (BufferedImage) sprites.get(location);
if(source == null){
try {
source = ImageIO.read(location);
}catch(IOException e){
System.out.println("Error occured while loading image: " + e);
return null;
}
sprites.put(location, source);
}
int width = source.getWidth() / column;
int height = source.getHeight() / row;
BufferedImage[] pics = new BufferedImage[column * row];
int count = 0;
for(int i = 0; i < row; i++){
for(int a = 0; a < column; a++){
pics[count] = source.getSubimage( a * width, i * height, width, height);
count++;
}
}
return null;
}
[/Java]
Dazu noch diese Methode:
[Java]
public URL getURLfromRessource(String path){
return getClass().getClassLoader().getResource(path);
}
[/Java]
Ich rufe die Methode folgendermassen auf:
[Java]
car = new Car(lib.getSprite("car.gif", 4, 1), 400, 300, 100, this);
[/Java]
Die gif-Datei ist folgendermassen gespeichert:
Screenshot des package explorers
Wenn ich das Programm das starte bekomme ich diese Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at Sprite.<init>(Sprite.java:24)
at Car.<init>(Car.java:11)
at ScrollGame.doInitializations(ScrollGame.java:32)
at GamePanel.<init>(GamePanel.java:48)
at ScrollGame.<init>(ScrollGame.java:23)
at ScrollGame.main(ScrollGame.java:18)
So wie ich das verstanden habe gibt er an, dass er die Datei nicht findet. Ich kann mir aber wirklich nicht vorstellen warum er diese Datei nicht finden kann. Müsste ich diese irgendwie anders einbinden?