Bildinformation soll beim minimieren eines Frames erhalten bleiben!
-
ich habe ein problem und zwar wenn ich auf einem frame linien zeichnen lasse das dann minimiere sind alle linien weg und es wird von einem leeren frame angefangen linien zu zeichnen? wie kann ich trotz frameminimierung die bildinformation erhalten? habe gehört dass da ein clear oder so ausgeführt wird ? wie vermeide ich das?
thx
-
Die Linien einfach neuzeichnen lassen...
-
?? ich speichere die linien ja nicht? ich lasse einfach random lienien erzeugen und die sollen erhalten bleiben wenn ich minimiere u frame wieder öffne aber das frame ist dann leer und es werden neue linien erzeugt?
-
Also du solltest sie besser zeichnen. Ich vermute mal, dass es zu Problemen kommen wird, wenn dein Fenster mal in den Hintergrund gerät und von anderen verdeckt wird und du es dann wieder in den Vordergrund holst oder du es eben minimierst und wieder maximierst. Also empfehle ich, die Linien oder überhaupt alles was du zeichnest zu speichern. Sonst würde das alles nur gut gehen, wenn dein Fenster die ganze Laufzeit über nie verdeckt oder versteckt werden würde.
Wenn du keine Lust hast die ganzen Koordinaten der Linien zu speicher, dann speichere doch einfach das was du zeichnest nach jedem Frame in einem Bild und zeichne das dann wieder die Linien drüber und das ganze dann wieder im Bild speichern usw. ^^
Also das würde mir spontan einfallen.
-
mmm hättest du da ein codebsp wie das geht?
-
Downset schrieb:
mmm hättest du da ein codebsp wie das geht?
Zeig' Du doch mal, wie Du die Zufallslinien zeichnest...
Für mich hört sich Dein Ansatz irgendwie stumpfsinnig an.
-
Spendier´ der Klasse ne Variable vom Typ Image.
Führe auf diesem Bild alle Zeichenoperation durch.
Lasse dieses Bild in der paint(Graphics) zeichnen.So, jetzt setz dich ma ran und versuche das umzusetzen (nutze die API Doc: http://java.sun.com/j2se/1.5.0/docs/api/ ) und wenn du morgen auf keine Lösung gekommen bist, dann kannst du ja nochmal fragen und ich ´nen bisschen code schreiben.
-
thx habs inzwischen gelöst?
aber das wär die funktion gewesen ->public void Line() { int x1 = (int) (x * random.nextFloat()); int y1 = (int) (y * random.nextFloat()); int x2 = (int) (x * random.nextFloat()); int y2 = (int) (y * random.nextFloat()); g.drawLine(x1, y1, x2, y2); }
hab sie immmer wieder in einem thread aufgerufen mit repaint und hat so immer wieder eine neue linie erzeugt nur beim minimieren vom frame waren alle linien weg und hat dabei wieder bei weißem bild angefangen linie zu zeichnen ? viel weiß ja noch jemand wies geht ohne dass ich die linien zb in einer liste speichern muss wie ichs jetzt gemacht habe -> sondern dass die bildinfo erhalten bleibt auch beim minimieren?
-
Wie das geht, habe ich dir über deinem letzten posting(also über dem, was ich gerade beantworte) geschrieben. ^^
-
Downset schrieb:
thx habs inzwischen gelöst?
aber das wär die funktion gewesen ->public void Line() { int x1 = (int) (x * random.nextFloat()); int y1 = (int) (y * random.nextFloat()); int x2 = (int) (x * random.nextFloat()); int y2 = (int) (y * random.nextFloat()); g.drawLine(x1, y1, x2, y2); }
hab sie immmer wieder in einem thread aufgerufen mit repaint und hat so immer wieder eine neue linie erzeugt nur beim minimieren vom frame waren alle linien weg und hat dabei wieder bei weißem bild angefangen linie zu zeichnen ? viel weiß ja noch jemand wies geht ohne dass ich die linien zb in einer liste speichern muss wie ichs jetzt gemacht habe -> sondern dass die bildinfo erhalten bleibt auch beim minimieren?
Wie das geht (mit Image) hat doch Pogo erklärt?!?
Ich würde es mit der Liste machen, weil Du doch sicher was mit den Linien vorhast?!
Z.B. interaktiv (mit der Maus) rauslöschen oder so...