Paint Methode aus einer anderen Klasse

Xym

Erfahrenes Mitglied
Hi!

Ich programmiere seit langem mal wieder in Java und schon ist das erste Problem da.
Ich versuche ein recht simples Tower defense Spiel zu machen.
Dazu habe ich bis jetzt eine Haupt, und eine Nebenklasse.

Das hier ist die Nebenklasse für die Gegner
Java:
package game;

import java.awt.Graphics;
import java.awt.Image;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

public class Enemy {
	
	int x;
	int y;
	
	boolean life = true;
	
	Image monster;
	
	public Enemy(int x1, int y1) throws Exception {
		this.x = x1;
		this.y = y1;
		monster = ImageIO.read(new File ( "C:/Users/Jan/workspace/Tower Defense/src/game/monster_1.png" ));
	}
	
	public void paint(Graphics g) {
		g.drawImage(monster, x, y, null);
	}
	
	public int getX() {
		return x;
	}
	
	public int getY() {
		return y;
	}
	
	public void setX(int x2) {
		x = x2;
	}
	
	public void setY(int y2) {
		y = y2;
	}
}

In der Hauptklasse erstelle ich so die Geger
Java:
int spawnrate = 20;
Enemy e[] = new Enemy[spawnrate];

for(int i=0;i<spawnrate;i++) {
e[i] = new Enemy(1200-i*30, 200);
}

Und so sollten Sie eigentlich gezeichnet werden
Java:
public class Grafik extends JPanel {
public void paintComponent(Graphics g) {
	Graphics2D g2 = (Graphics2D)g;
				
	for(int i=1;i<18;i++)
	         e[i].paint(g2);
	}
}
aber genau dort bekomme ich eine Nullpointer Exception und verstehe einfach nicht wieso.
 
Hi
In welcher Zeile bekommst du die NullpointerException?
Prinzipiell würde ich dir raten, den Code etwas weiter zu dynamisieren, d.h. die for-Schleife im letzten Abschnitt einfach bis zum Ende der Schleife durchlaufen zu lassen, d.h. feste Zahlenwerte vermeiden wo möglich.
 
Zurück