BufferedImage[] aus anderer Classe auslesen

Verratus

Neues Mitglied
Hallo Zusammen

Ich versuche seit einigen Monaten über Foren und Tutorials mir etwas Java beizubringen. Hintergedanke ist ein Game zu machen. Nun stehe ich vor einem Problem welches ich nicht sehe daher wende ich mich an euch.

Aufbau:
Ich lade alle Bilder in einer seperaten Classe in eine BufferedImage[] variable. Diese Classe inizialisiere ich zu beginn. Hintergedanke ist das vermeiden von unnötigem Speicher bei vermehrtem laden der Bilder und eine gute abgrenzung.

Wenn ich nun über System.out.PrintLn das Object in der Classe ausgeben lasse hat es einen Inhalt jedoch nicht wenn ich die Abfrage aus dem Gamethread mache(nach dem inizialisieren der Classe).

Hier mein QuellText:
ImageLoader

[Java]
public int staticCount;

// StaticImage

public BufferedImage[] staticBackground;
public String[] staticName;
public int[] staticPosX, staticPosY;
public boolean[] staticSubImage;
public int[] staticNumSubImage;

public int buttonCount;

private String NameImg;

public ImageLoader(){

try {
InputStream in = getClass().getClass().getResourceAsStream("/Config/Layout.bin");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = null;
while((line = br .readLine()) != null) {
// Ganze Zeile:

String[] parts = line.split(" = ");

if (parts[0].contentEquals("Count")) {
staticCount = Integer.parseInt(parts[1]);
}

staticBackground = new BufferedImage[staticCount];
staticName = new String[staticCount];
staticPosX = new int[staticCount];
staticPosY = new int[staticCount];
staticSubImage = new boolean[staticCount];
staticNumSubImage = new int[staticCount];


for(int num = 0; num < staticCount; num++){

if (parts[0].contentEquals("static" + num)) {
String[] parts2 = parts[1].split(", ");
NameImg = "/Image/Base/Desing/" + parts2[0] + num + ".png";
System.out.println("static Image loging..." + NameImg);

staticBackground[num] = ImageIO.read(getClass().getResourceAsStream(NameImg));
staticName[num] = parts2[0];
staticPosX[num] = Integer.parseInt(parts2[1]);
staticPosY[num] = Integer.parseInt(parts2[2]);
staticSubImage[num] = Boolean.parseBoolean(parts2[3]);
staticNumSubImage[num] = Integer.parseInt(parts2[4]);


System.out.println("staticBackground" + num);
System.out.println(staticBackground[num]);

System.out.print(" Y: " + parts2[1] + ", X: " + parts2[2]);
System.out.print(", SubImage " + parts2[3]);
System.out.println(", Nummer of SubImage " + parts2[4]);

}else{
// System.out.println(" No Image found");
// System.out.println(parts[0]);
}
}
// ...
}
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
[/code]

Auszug aus GameThread
Java:
	public GameThread(ScreenManager scm) {
		super();
		this.scm = scm;
		setPreferredSize(
				new Dimension(scm.HEIGHT, scm.WIDTH));
		setFocusable(true);
		requestFocus();
		System.out.println("GameThread Loding...");
		il = new ImageLoader();
		System.out.println(il.staticBackground[0]);
		
	}

Auszug aus Console
Code:
GameThread Loding...
static Image loging.../Image/Base/Desing/Base0.png
staticBackground0
BufferedImage@5ad75c47: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@70eb67e8 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 1600 height = 1200 #numDataElements 3 dataOff[0] = 2
 Y: 0, X: 0, SubImage true, Nummer of SubImage 3
null

Nach allem was ich in den Foren gelesen habe sollte dies so klappen, jedoch erhalte ich den wert Null.

Danke für eure Unterstützung.
 

Bananabert

Bekanntes Mitglied
Hallo Verratus,

in Zeile 21-30
Java:
while((line = br .readLine()) != null) {
 //...
 staticBackground = new BufferedImage[staticCount];
}
initialisiert du jedes mal deine Variablen neu, sobald eine Zeile eingelesen wird.
Ich könnte mir vorstellen, dass hier der Fehler liegt.

Schau doch mal, ob nach deiner while-schleife immer noch etwas in "BufferedImage[] staticBackground;" steht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B BufferedImage Position Spiele- und Multimedia-Programmierung 8
B BufferStrategy zu BufferedImage? Irgendwie? Spiele- und Multimedia-Programmierung 2
D getsubimage aus BufferedImage und Rueckwandlung in ein ImagePlus bild Spiele- und Multimedia-Programmierung 0
F [JMyron] Bild von int[] zu BufferedImage Spiele- und Multimedia-Programmierung 2
Q BufferedImage vs. Heap Space ‒ Warum wird der Speicher nicht freigegeben? Spiele- und Multimedia-Programmierung 6
M Performance Problem bei BufferedImage Spiele- und Multimedia-Programmierung 7
R BufferedImage > Integer.MAX_VALUE Spiele- und Multimedia-Programmierung 9
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
G BufferedImage -> Farbe wechselt willkürlich Spiele- und Multimedia-Programmierung 15
P int-Array zu BufferedImage (performance?) Spiele- und Multimedia-Programmierung 14
agentone BufferedImage transparent löschen Spiele- und Multimedia-Programmierung 12
radiac Stringtext mit BufferedImage Textur. Spiele- und Multimedia-Programmierung 6
kowa BufferedImage und Antialias Spiele- und Multimedia-Programmierung 2
T BufferedImage#setRGB #getRGB zu langsam Spiele- und Multimedia-Programmierung 4
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
Z Transparenz in BufferedImage Spiele- und Multimedia-Programmierung 8
Z JME - Rendering in BufferedImage Spiele- und Multimedia-Programmierung 14
A Bildbereich als BufferedImage Spiele- und Multimedia-Programmierung 3
M BufferedImage blass machen Spiele- und Multimedia-Programmierung 5
Lulumann6 BufferedImage in VolatileImage casten Spiele- und Multimedia-Programmierung 10
F BufferedImage verursacht OutOfMemoryError Spiele- und Multimedia-Programmierung 11
P Rotation von BufferedImage (Affine Transformation) Spiele- und Multimedia-Programmierung 7
S Image to BufferedImage Spiele- und Multimedia-Programmierung 3
krgewb Anderer Algorithmus für Bounding Box Spiele- und Multimedia-Programmierung 9
T MouseMotionListener aus anderer Klasse verwenden. Spiele- und Multimedia-Programmierung 1
H Zugreifen/Benutzen anderer Variable aus anderer Klasse Spiele- und Multimedia-Programmierung 1
T Overlay in anderer OpenGL Anwendung Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben