Wie benutzt man JInternalFrames?

Vogi

Aktives Mitglied
Hallo,

ich habe einen JWindow im Vollbildmodus und möchte auf diesem nun JInternalFrames darstellen. Weiterhin möchte ich auf dem JWindow auch normal zeichnen können (mit aktivem Rendering). Nun frage ich, wie ich so etwas mache, da ich noch keine Erfahrung mit JInternalFrames habe und auch kein gutes Turtorial gefunden habe.

Schon mal danke für eure Hilfe:toll:
 
danke schon mal für den tipp, das Problem ist nur , das ich auf den JWindow ja auch noch malen möchte und dabei wird ds JInternalFrame übermalt, was kann man tun, damit man das JInternalFrame immer sieht?
 
Also ich hab mir jetzt deinen Code im anderen Thread nicht angeschaut (wieso eig. zwei Threads? ;/ ) aber das klingt stark danach dass du falsch zeichnest. Wieso zeichnest du nicht in der paintComponent vom JDesktopPane? Dort kannst du ganz gemütlich zeichnen und die JInternalFrame liegen drüber....

Wieso eig. ein JWindow und IFrames? :autsch:
 
danke für deine Antwort, genau das war das Problem. Ich benutze ein JWindow da ich ein Spiel im Vollbildmodus schreibe, da ist ein Window doch das richtige. Ich muss aber auch Dialoge im Spiel haben, daher JInternalFrames. Der zweite thread ist schon etwas älter, ich hatte die Lösung dieses Problemes schon fast aufgegeben, aber hatte es jetzt noch einmal mit einem neuen Thread versucht. Und war nun erfolgreich. Also nochmal danke.:toll:
 
aktives rendering ist nun aber nicht mehr möglich, oder?wenn ich das ganze Zeichnen nun normal über die paintComponent-Methode erledige, dann funktioniert alles einwandfrei, wenn ich allerdings über getGraphics() ein Grafik-Objekt des JDesktopPanes erstelle, wird das JInternalFrame wieder übermalt. Also muss ich auf aktives rendering verzichten?
 
aktives rendering ist nun aber nicht mehr möglich, oder?wenn ich das ganze Zeichnen nun normal über die paintComponent-Methode erledige, dann funktioniert alles einwandfrei, wenn ich allerdings über getGraphics() ein Grafik-Objekt des JDesktopPanes erstelle, wird das JInternalFrame wieder übermalt. Also muss ich auf aktives rendering verzichten?

getGraphics aufzurufen ist nun mal in den meisten Fällen eben falsch. Wie schon gesagt zeichne halt in der paintComponent, dort bekommst du doch ein Grahpics-Objekt übergeben, mit dem kannst du doch auch alles machen?! mit repaint() stößt du das Neuzeichnen dann an...
Vllt verstehe ich dich/ du mich auch falsch, ein wenig Beispielcode was du momentan hast, mit einer kleinen Erläuterung was du dir erhoffst, was nicht geht usw könnte weiterhelfen
 
naja, das ganze soll , wie schon gesagt ein spiel werden, und dafür muss ich eigetnlich permanent neuzeichnen, da sich die Daten des Spieles permanent verändern. Ein ständiger Aufruf von repaint ist doch etwas uneffizient, oder?
 

Zurück
Oben