Hallo Com,
ich habe ein Problem beim zeichnen eines Images.
Ich benutze ein JPanel zum zeichnen und überschreibe dabei die paintComponent-Methode.
Alles was ich in dieser Klasse zeichnen lasse funktioniert wunderbar, über das von der Methode mitgelieferte Graphics Objekt (im Java-Code g.drawLine()).
Wenn ich jetzt allerdings über eine andere Klasse die Methode draw() aufrufe, um ein Image zeichnen zu lassen, malt er leider nichts.
Da ich in meiner anderen Klasse kein Graphics Objekt habe, dachte ich mir, dass ich einfach das Graphics Objekt der paintComponent-Methode einem GraphicsObjekt der Klasse zuordne (this.g=g).
Meine draw-Methode benutzt dann das GraphicsObjekt der Klasse.
Um den Fehler einzugrenzen habe ich diese draw-Methode abgeändert.
Das "hier" wird ausgegeben, allerdings das in der Methode selbst erzeugte Image nicht gezeichnet.
Das bedeutet doch eigentlich, dass es an dem Graphics Objekt liegen muss oder?
Allerdings fehlt mir das Wissen, um diesen Fehler zu verstehen.
Deswegen die Frage an euch. Was kann ich tun, damit die Bilder gezeichnet werden?
Danke für jede Hilfe!
ich habe ein Problem beim zeichnen eines Images.
Ich benutze ein JPanel zum zeichnen und überschreibe dabei die paintComponent-Methode.
Alles was ich in dieser Klasse zeichnen lasse funktioniert wunderbar, über das von der Methode mitgelieferte Graphics Objekt (im Java-Code g.drawLine()).
Wenn ich jetzt allerdings über eine andere Klasse die Methode draw() aufrufe, um ein Image zeichnen zu lassen, malt er leider nichts.
Da ich in meiner anderen Klasse kein Graphics Objekt habe, dachte ich mir, dass ich einfach das Graphics Objekt der paintComponent-Methode einem GraphicsObjekt der Klasse zuordne (this.g=g).
Meine draw-Methode benutzt dann das GraphicsObjekt der Klasse.
Um den Fehler einzugrenzen habe ich diese draw-Methode abgeändert.
Das "hier" wird ausgegeben, allerdings das in der Methode selbst erzeugte Image nicht gezeichnet.
Das bedeutet doch eigentlich, dass es an dem Graphics Objekt liegen muss oder?
Allerdings fehlt mir das Wissen, um diesen Fehler zu verstehen.
Deswegen die Frage an euch. Was kann ich tun, damit die Bilder gezeichnet werden?
Danke für jede Hilfe!
Java:
Graphics g;
@Override
public void paintComponent (Graphics g){
super.paintComponent(g);
this.g=g;
g.drawLine(...);
}
public void draw(Image img, int x, int y){
System.out.println("hier");
ImageIcon i = new ImageIcon("AktiveSoldiers.png");
g.drawImage(i.getImage(), 100, 100, null);
}