Threads in einen Frame zeichnen lassen (Paint()?!)

Status
Nicht offen für weitere Antworten.

Syntix

Neues Mitglied
Heyho,
folgendes Problem stellt sich mir:

Ich bin dabei eine Application zu schreiben bei der beispielsweise Kreise von oben nach unten fallen sollen. Diese Kreise sollen von Threads gezeichnet und animiert werden via repaint(); (Ich hoffe das stimmt schonmal so).

Mein Problem ist das ich es einfach nicht hinbekomme bzw. wahrscheinlich nicht verstehe wie ich aus einem Thread herraus in einen Frame zeichnen lassen kann. Das alles soll natürlich "gleichzeitig" ablaufen, sprich alle Kreise gleichzeitig fallen deshalb entfällt meines Wissens nach auch schonmal das aufrufen jedes einzelnen paint(); der Threads.

Beispiel:

Es existiert das "Hauptfenster" MyFrame und 3 Threads von PaintSth und jeder dieser Threads soll einen Kreis im HauptFenster animieren.

Danke schonmal =)

MfG
 
Zuletzt bearbeitet:

javimka

Top Contributor
Der einzige Thread, der irgendetwas zeichnen sollte, ist der Event-Dispatching-Thread (EDT). Ein anderer Thread könnte z.B. Mittelpunkt oder Radius des Kreises ändern und dann repaint aufrufen, so dass der EDT den Kreis dann neu zeichnet.

Der einzige Weg, der mir einfällt um die Arbeit des Zeichnens auf mehrere Threads auszuweiten wäre, dass repaint (ausgeführt vom EDT) neue Threads startet und diese auf dem Graphics Objekt g zeichnen lässt. Der EDT müsste dann warten bis all die Threads fertig und beendet sind und kann dann weiter machen.

Was auch immer du machst, vermeide es, durch getGraphics das Graphics Objekt einer Komponente zu bekommen und darauf zu zeichnen. Das endet nie gut.
 

Michael...

Top Contributor
Folgendes Tutorial kennst Du hoffentlich bereits bzw. Dir ist das Zeichnen in Swing geläufig.
http://www.java-forum.org/awt-swing-swt/43939-zeichnen-swing-tutorial.html#post272072

1. Zeichne auf ein JPanel und nicht direkt auf den JFrame
2. Ich würde einen Thread nehmen um alle Kreise zu manipulieren (Wenn's unbedingt sein muss geht's auch mit mehreren Threads).
3. die Kreise in der paintComponent() des JPanel zeichnen lassen - vorher super.paintC... aufrufen
4. der Threads muss das JPanel kennen, um dessen repaint() aufzurufen, er muss auch die Kreise kennen, um deren Position zu ändern
 

nw90

Mitglied
Du musst zunächst einmal die paint() Methode überschreiben:
Java:
 public void paint(Graphics g)
    {
        //die "normale" paint-Methode aufrufen
        super.paint(g);
        
        g.drawImage(Kreis1, Kreis1_x, Kreis1_y, this);
        g.drawImage(Kreis2, Kreis2_x, Kreis2_y, this);
        g.drawImage(Kreis3, Kreis3_x, Kreis3_y, this);
    }
wobei Kreis1-3 jeweils ein Image-Objekt ist. In deinen Threads müsstest du nun jeweils nur die Variablen für die Image-Objekte ändern und die repaint()-Methode aufrufen

Java:
public void run()
{
     Kreis1_y += 10;
     MyFrame.repaint();
}
 

javimka

Top Contributor
Iich würde eher paintComponent überschreiben. Dann kann man dem Panel immer noch Borders geben und Komponenten hinzufügen.
 

KrokoDiehl

Top Contributor
Jupp,
Code:
paintComponent()
sollte man überschreiben (s. Tutorial-Link von Michael...).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 Threads -> Ereignisbehandlung AWT, Swing, JavaFX & SWT 2
N jFrame löscht am Ende des Threads alles AWT, Swing, JavaFX & SWT 2
J GUI Ausgaben aus Threads AWT, Swing, JavaFX & SWT 13
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
N JavaFX Logging des JavaFX Application Threads mit Log4J AWT, Swing, JavaFX & SWT 3
U JAVAFX observer und threads AWT, Swing, JavaFX & SWT 1
J Textlabel verändern mit parallelen Threads AWT, Swing, JavaFX & SWT 7
Sugan Inhalte mit Threads ändern -> java.lang.IllegalStateException AWT, Swing, JavaFX & SWT 6
R Straßenkreuzung - Ampeln mit Threads koordinieren AWT, Swing, JavaFX & SWT 5
C Threads Swing AWT, Swing, JavaFX & SWT 11
Z JavaFX Threads AWT, Swing, JavaFX & SWT 4
T hallo, habe ein Problem mit dem pro. eines Threads AWT, Swing, JavaFX & SWT 4
M Threads - nicht erklärbare Exception AWT, Swing, JavaFX & SWT 6
R Repaint() in Schleifen, Threads AWT, Swing, JavaFX & SWT 13
S Java Swing GUI mit MVC und Threads AWT, Swing, JavaFX & SWT 6
M Frage zu Threads AWT, Swing, JavaFX & SWT 3
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
K Threads - Timer - run() mehrfach parallel? AWT, Swing, JavaFX & SWT 2
B GUI mit Threads aufbauen AWT, Swing, JavaFX & SWT 5
E Threads Ausgaben in GUI anzeigen lassen AWT, Swing, JavaFX & SWT 14
P JavaFX 2 (2.1 Beta) Threads AWT, Swing, JavaFX & SWT 7
B Threads in Swing AWT, Swing, JavaFX & SWT 4
M Problem mit Threads AWT, Swing, JavaFX & SWT 64
R Swing Java Swing Gui und nebenläufige Threads AWT, Swing, JavaFX & SWT 4
S Swing Threads Windows 7 64 bit AWT, Swing, JavaFX & SWT 12
J Threads + JFrame AWT, Swing, JavaFX & SWT 4
R Java threads und synchronized AWT, Swing, JavaFX & SWT 15
R Swing Swing und die Threads AWT, Swing, JavaFX & SWT 9
N Swing Threads sollen Tabtitel zur Laufzeit ändern AWT, Swing, JavaFX & SWT 4
S Gui und Aufgaben Threads AWT, Swing, JavaFX & SWT 12
M Zugriff paralleler Threads auf selbes JTextPane AWT, Swing, JavaFX & SWT 6
B Frage zu Swing,Threads, SwingWorker und Socket Communikation AWT, Swing, JavaFX & SWT 4
M Prioritäten bei SwingWorker / Threads AWT, Swing, JavaFX & SWT 9
B Swing GUI und Threads AWT, Swing, JavaFX & SWT 4
R Korrektes manipulieren der GUI aus anderen Threads heraus AWT, Swing, JavaFX & SWT 19
S Threads und Layout AWT, Swing, JavaFX & SWT 9
W GUI in mehreren Threads AWT, Swing, JavaFX & SWT 5
F Swing Anfängerproblem Threads AWT, Swing, JavaFX & SWT 6
S Swing Threads und das Ändern des Hintergrundes ... AWT, Swing, JavaFX & SWT 2
S Zeichnen in Threads AWT, Swing, JavaFX & SWT 4
T Auf Ende von mehreren Threads warten, ohne den EDT zu blockieren AWT, Swing, JavaFX & SWT 1
J SWT SWT und Threads AWT, Swing, JavaFX & SWT 5
borobudur SWT SWT-Framework und Threads AWT, Swing, JavaFX & SWT 12
W Threads nacheinander aufführen AWT, Swing, JavaFX & SWT 5
A Swing und Threads AWT, Swing, JavaFX & SWT 8
B JProgressbar wird nicht aktualisert, trotz Threads AWT, Swing, JavaFX & SWT 6
K Timer und Threads ruckeln für Fotoschwenk AWT, Swing, JavaFX & SWT 3
S JProgressBar und Threads AWT, Swing, JavaFX & SWT 11
G Probleme mit jList und Threads. AWT, Swing, JavaFX & SWT 3
R Swing & Threads AWT, Swing, JavaFX & SWT 4
R 2 Threads nacheinander. Einer terminiert, der andere nicht. AWT, Swing, JavaFX & SWT 9
J Unterschied zwischen SwingWorker und Threads AWT, Swing, JavaFX & SWT 4
P Threads und Swing bzw. AWT AWT, Swing, JavaFX & SWT 15
W Threads und trotzdem keine Nebenläufigkeit AWT, Swing, JavaFX & SWT 13
G Fenster erst nach Stoppen des Threads anzeigen AWT, Swing, JavaFX & SWT 3
N Threads kein neues Fenster erzeugen lassen AWT, Swing, JavaFX & SWT 4
G problem mit threads/repaint ! AWT, Swing, JavaFX & SWT 2
W Swing, 2 JProgressbars und threads geht das? AWT, Swing, JavaFX & SWT 2
A JTextArea und Threads AWT, Swing, JavaFX & SWT 9
B Probleme mit GUI und Threads AWT, Swing, JavaFX & SWT 17
E repaint(), EDT-Warteschlange und Threads AWT, Swing, JavaFX & SWT 26
S Threads in Java AWT, Swing, JavaFX & SWT 22
G AWT + Threads = nicht gut :P AWT, Swing, JavaFX & SWT 6
F Verständis Problem zu Threads AWT, Swing, JavaFX & SWT 2
M Swinganwendung Threads mit JProgressBar AWT, Swing, JavaFX & SWT 7
V Problem mit Aktualisieren von JList mit Threads AWT, Swing, JavaFX & SWT 3
U FileChooser Layout - Threads? AWT, Swing, JavaFX & SWT 17
R JProgressBar ohne Threads verwenden AWT, Swing, JavaFX & SWT 6
I JList, AbstractListModel und nebenläufige Threads AWT, Swing, JavaFX & SWT 2
S "Millionen" von Threads? Programm komplett beenden AWT, Swing, JavaFX & SWT 2
M Konsolenprg-Ausgabe in GUI geleitet - Brauche ich Threads? AWT, Swing, JavaFX & SWT 2
K Swing und Threads AWT, Swing, JavaFX & SWT 11
M Threads in Swing? AWT, Swing, JavaFX & SWT 2
C Schweres Problem mit JDialog und Threads! Anzeige blockiert! AWT, Swing, JavaFX & SWT 5
N Netzwerk-Applikation, SWT und Threads AWT, Swing, JavaFX & SWT 4
R createBufferStrategy() und Threads AWT, Swing, JavaFX & SWT 5
D Threads unter JFrame AWT, Swing, JavaFX & SWT 2
G Nochmal Threads und Einfrieren des GUI :( AWT, Swing, JavaFX & SWT 10
V Swing & Threads ??? AWT, Swing, JavaFX & SWT 3
D Problem mit JProgressBar und Threads AWT, Swing, JavaFX & SWT 7
MiMa Reaktion auf einen SplitScreenTrenner? AWT, Swing, JavaFX & SWT 2
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
Z Mit einem Button einen anderen Button Triggern AWT, Swing, JavaFX & SWT 3
J Gibt es einen Grund für 16x16 anstatt z.B. 15x15 Tiles ? AWT, Swing, JavaFX & SWT 10
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
J Schriftart über einen Button ändern AWT, Swing, JavaFX & SWT 1
J Genutzte Methoden in einen Frame einbauen AWT, Swing, JavaFX & SWT 21
P Wie lese ich einen jRadioButton aus? AWT, Swing, JavaFX & SWT 21
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben