Problem beim Image zeichnen via andere Klasse

bluerob

Mitglied
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! :)

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);
    }
 
G

Gast2

Gast
Java:
this.g=g;
Sowas sollte man nicht machen! Das ist in etwa genauso schlimm wie getGraphics() ;)

Das Graphics Objekt dass der paintComponent() übergeben wird ist nur solange "gültig" wie der Zeichenvorgang dauert. Wenn du ein Image zeichnen willst dann kannst du das in etwa so machen:


Java:
DeineKlasse deineKlasse = ...;

@Override
public void paintComponent (Graphics g){
   super.paintComponent(g);

   deineKlasse.drawImage(g);
}

Die drawImage Methode kann das das Graphics Objekt nutzen und das Bild damit zeichnen.
 

bluerob

Mitglied
Aber ich möchte ja von einer anderen Klasse das Zeichnen aufrufen lassen.

Also ich habe die Klasse Animation, in welcher die Bilder für eine Animation verwaltet werden.
Da ich in dieser Klasse kein Graphics Objekt habe, dachte ich mir ich übergebe das Bild und die Koordinaten an meine Paint Klasse und diese zeichnet das Bild dann.
Dies wollte ich über die draw-Methode in meiner Paint-Klasse machen, welche meine Animation-Klasse aufruft.

Wie kann ich das machen?
 
V

vanny

Gast
Wenn ich dich richtig verstehe, dann schreib dir in deiner Panel-Klasse eine Methode, die das Image entgegennimmt, einer Membervariablen zuweist und dann repaint() aufruft.

In der painComponent() zeichnest du dann einfach die Membervariable

Gruß Vanny
 

bluerob

Mitglied
Meinst du mit Membervariable eine Variable die dann mit if geprüft wird?

Java:
private Image image;

public void draw(Image img){
   this.image=image;
   repaint();
}

@Override
public void paintComponent(Graphics g){
   super.paintComponent(g);

   if(image!=null) g.drawImage(image,x,y,null);
}

so?
 
G

Gast2

Gast
@TO:
Fakt ist erstmal dass du nur innerhalb der paintComponent() Methode zeichnen kannst, sonst nirgends.
Das heißt du musst innerhalb der paintComponent() eine Methode deiner Animation Klasse aufrufen die dann das entsprechende Bild zeichnet.
Ein neuzeichnen kannst du mit repaint() triggern.
 

bluerob

Mitglied
Danke, damit läuft es.
Ich muss aber als Membervariable eine ArrayList erstellen, damit mehrere Animationen gleichzeitig laufen können. Hier hakt es noch ein wenig, aber denke die Probleme kann ich selbst lösen :)

Danke nochmal! :)
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem beim Image laden AWT, Swing, JavaFX & SWT 4
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
S Anordnung von GUI-Komponenten mit LayouManger (Problem beim anzeigen von JTextField) AWT, Swing, JavaFX & SWT 5
A Swing Problem beim Neuerstellen einer Node AWT, Swing, JavaFX & SWT 4
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
K Swing Problem beim Zeichnen von Kreisen AWT, Swing, JavaFX & SWT 4
K JButton Problem beim Schriftfarbe Ändern AWT, Swing, JavaFX & SWT 2
P Problem beim erstellen eines JPanel in einem JFrame AWT, Swing, JavaFX & SWT 7
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
M Problem beim Eventhandling AWT, Swing, JavaFX & SWT 5
B Problem beim laden von Bild mit getResource() AWT, Swing, JavaFX & SWT 3
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
H Thread-Problem mit der Darstellung beim Sperren des Fensters AWT, Swing, JavaFX & SWT 2
C Performance-Problem beim Überschreiben von paintComponent() AWT, Swing, JavaFX & SWT 2
M Problem beim Zeichnen mit Path2D AWT, Swing, JavaFX & SWT 4
F Swing JTable: Problem beim zeile löschen AWT, Swing, JavaFX & SWT 3
G Problem beim setzen des Fokus AWT, Swing, JavaFX & SWT 4
Z Problem beim JTextField AWT, Swing, JavaFX & SWT 5
C Swing Problem beim 2. Öffnen eines JFrames AWT, Swing, JavaFX & SWT 9
1 Java.awt.Robot Problem beim Shift-Druck AWT, Swing, JavaFX & SWT 5
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5
F Problem beim Positionieren von Icon und Text in Button AWT, Swing, JavaFX & SWT 2
Developer_X Swing Problem beim "rezeichnen" -> Überzeichnen der Komponente AWT, Swing, JavaFX & SWT 8
N SWT Einfaches Problem beim Layout AWT, Swing, JavaFX & SWT 8
N Swing Problem beim Einlesen von Jtable in Array AWT, Swing, JavaFX & SWT 5
W Swing Problem beim Passwort Dialog AWT, Swing, JavaFX & SWT 4
C Problem mit Swing Application Framework - Projekt beim AWT, Swing, JavaFX & SWT 2
F kleines problem beim suchen in einem String AWT, Swing, JavaFX & SWT 15
A Problem beim Setzen von JPanels AWT, Swing, JavaFX & SWT 4
P Problem beim Linien ziehen! AWT, Swing, JavaFX & SWT 12
S Problem beim Anpassen vom GridBagLayout AWT, Swing, JavaFX & SWT 10
H Adressbuch - Problem beim Speichern der Eingabe AWT, Swing, JavaFX & SWT 5
A Problem mit der Seiteneinrichtung beim Drucken AWT, Swing, JavaFX & SWT 7
P Bug in Java? - Problem beim Ändern von Spaltentiteln AWT, Swing, JavaFX & SWT 2
I Layout Problem beim Skalieren AWT, Swing, JavaFX & SWT 3
S Problem beim implementerien von ActionListener AWT, Swing, JavaFX & SWT 4
Y Problem beim Drucken AWT, Swing, JavaFX & SWT 2
A Problem beim Import! AWT, Swing, JavaFX & SWT 2
M Problem beim Einsatz von ScrollPane (Fenster spielt verrückt AWT, Swing, JavaFX & SWT 2
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
Z Und schon wieder die Linien (Problem beim überzeichnen) AWT, Swing, JavaFX & SWT 4
W Problem beim neuzeichnen eines Rechteckes (SWT) AWT, Swing, JavaFX & SWT 2
J Problem beim Multi-Threading mit einem JDialog AWT, Swing, JavaFX & SWT 2
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
P Problem beim Zeichnen auf ein BufferedImage AWT, Swing, JavaFX & SWT 4
F Problem mit geänderten AttributSet beim StyledDocument AWT, Swing, JavaFX & SWT 4
B BorderLayout/JSplitPane Problem beim Ausrichten AWT, Swing, JavaFX & SWT 5
C Problem beim Ausführen von Thread per Button AWT, Swing, JavaFX & SWT 2
D Problem beim Erstellen eines GridBagLayouts AWT, Swing, JavaFX & SWT 3
A Problem beim Neuzeichnen AWT, Swing, JavaFX & SWT 2
V Problem beim drucken AWT, Swing, JavaFX & SWT 4
D Problem beim Update von unsichtbaren JComponents mit Timern AWT, Swing, JavaFX & SWT 5
S Problem beim Umbenennen von MP3s AWT, Swing, JavaFX & SWT 10
O Problem beim Umwandeln eines Applets in eine Applikation AWT, Swing, JavaFX & SWT 15
T Problem beim Laden von Bildern AWT, Swing, JavaFX & SWT 14
Juelin Problem mit TextField.requestFocus(); AWT, Swing, JavaFX & SWT 17
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben