Animation hinter transparentem Bild auf der GlassPane

Status
Nicht offen für weitere Antworten.
J

java2000

Gast
Hallo zusammen,
ich hoffe, mir kann jemand bei diesem Problem helfen. Ich habe in einem JFrame zwei JComponents nebeneinander. Zu beiden JComponets gehört je ein Thread, der eine Animation darin betreibt, alle 200ms wird dabei mittels DoubleBufferung das nächste Bild gezeichnet.
Wenn nun ein bestimmter Event eintrifft, möchte ich, dass im Vordergrund diese JComponents ein Bild angezeigt wird. Das Bild weist transparente Pixel auf und ist über beide diese JComponets ausgebreitet. Hinter dem Bild soll immer noch die Animation weiter betrieben werden.
Ich habe mir gedacht, dass ich das Bild einfach auf die GlassPane des JFrames zeichne, da diese ja vor den JComponents steht, aber das funktioniert leider nicht. Die JComponents verdecken das Bild jedesmal wieder, wenn die Animation vom zugehörigen Thread neugezeichnet wird.
Ich habe auch versucht, die Threads der beiden JComponents jedesmal die GlassPane mit dem Bild zeichnen zu lassen. Man sieht nun immerhin das Bild, aber es flackert immer noch sehr stark.

Weiss vielleicht jemand, wie ich mein Problem noch elegeanter lösen könnte, so dass die Animationen im Hintergrund sauber weiterlaufen können und im Vordergrund dieses Bild schön ruhig steht?

Gruss
Martin
 
G

Guest

Gast
Hei André,
danke vielmals für deine Mühe, das war die perfekte Antwort :D

Ich habe die beiden Klassen TimerAnimation und Picture nun studiert und das meiste verstanden. Nur etwas habe ich noch nie gesehen, bei der Methode paintComponent(Graphigs g) der Klasse Picture verwendest du eine Umformung in Graphics2D und eine drawImage-Methode mit sehr vielen Parameter. Habe ich das richtig verstanden, dass du damit nur genau den Teil des Bildes nocheinmal zeichnest, der sich wirklich verändert hat? Und die paintComponent Methode wird immer dann aufgerufen, wenn eine Instanz der Klasse TimerAnimation die Methode setLocation(nextX, nextY) (Z.58) aufgerufen hat?

Gruss
Martin
 

André Uhres

Top Contributor
"setLocation" bewirkt einen repaint, und zwar nur von dem Rechteck, das aktualisiert werden muss.
In "paintComponent" kann man dieses Rechteck mittels "getClipBounds" abfragen.
Der drawImage(..)-Aufruf, mit den angegebenen Parametern, zeichnet nur den
Teil des Bildes neu, der sich mit dem Cliprechteck überschneidet.

Das Graphics Objekt in paintComponent ist eigentlich ein Graphics2D,
eine Erweiterung von Graphics mit Verbesserungen bezüglich Steuerung der Geometrie,
Umwandlungen von Koordinaten, Farbenverwaltung und Textdarstellung.
Graphics2D ist die grundlegende Klasse zur Wiedergabe von 2D Formen,
Text und Bildern auf der Java Plattform.
 
J

java2000

Gast
Wieso helft ihr mir nicht ihr Scheisskinder?
Scheiss Forum!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Animation zieht "Spur" hinter sich her Spiele- und Multimedia-Programmierung 2
H Minecraft Casino EinarmigerBandit Animation Spiele- und Multimedia-Programmierung 5
B Animation Spiele- und Multimedia-Programmierung 4
Meeresgott Morph Targets und Skeleton Animation Spiele- und Multimedia-Programmierung 2
J (Libgdx) animation nur einmal in einem Event aufrufen Spiele- und Multimedia-Programmierung 1
N Animation funktioniert icht wie sie soll Spiele- und Multimedia-Programmierung 10
K Animation fliegendes JLabel Spiele- und Multimedia-Programmierung 1
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
R Animation mit Interpolator starten wenn Key pressed Spiele- und Multimedia-Programmierung 0
kaoZ Animation in eigenen Thread auslagern..... Spiele- und Multimedia-Programmierung 1
H [ANIMATION] Hintergrundbild nur einmal zeichnen Spiele- und Multimedia-Programmierung 3
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
0 Sprung Animation Spiele- und Multimedia-Programmierung 10
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
baddestpoet Animation startet bei gedrückter Taste immer wieder von vorn Spiele- und Multimedia-Programmierung 12
M Animation Spiele- und Multimedia-Programmierung 5
aze Animation an TransformGroup anpassen Spiele- und Multimedia-Programmierung 5
S Animation mit repaint Spiele- und Multimedia-Programmierung 2
K "Animation" funktioniert nur bedingt. Spiele- und Multimedia-Programmierung 8
W Flüssige Animation Spiele- und Multimedia-Programmierung 8
B Animation durch Button auslösen Spiele- und Multimedia-Programmierung 2
D Problem mit Animation bei Little Fighter Spiele- und Multimedia-Programmierung 5
R Double Buffering in Animation ich bekomms einfach nicht hin? Spiele- und Multimedia-Programmierung 3
G GL4Java Animation erstellen Spiele- und Multimedia-Programmierung 2
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
S 3ds animation einbinden Spiele- und Multimedia-Programmierung 3
A Animation mit jmonkeyengine Spiele- und Multimedia-Programmierung 10
S Gif Animation aus Prog heraus erstellen Spiele- und Multimedia-Programmierung 11
P Wie kann ich einem Programm hinter eine GUI verstecken? Spiele- und Multimedia-Programmierung 12
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
A [JOGL] TextRenderer malt Fläche hinter Buchstaben aus Spiele- und Multimedia-Programmierung 2
G JPEG mit transparentem PNG versehen Spiele- und Multimedia-Programmierung 8

Ähnliche Java Themen

Neue Themen


Oben