Graphics-Objekt zum teilweise neuzeichen

Paddy.

Aktives Mitglied
:(Also folgendes Problem, ich würde gerne eine Zeitanzeige in meinem Programm (lcdui-Canvas) haben.
Also Thread wo der Runteil im Sekunden-Takt die Zeit berechnet.
Da die Berechnung für die restliche Aufbau der Grafik eher komplex ist und eigentlich sich auch nur verändert wenn eine Tasten-Eingabe erfolgt ist, würde ich ungern im Sekunden-Takt ein repaint() auslösen. Oder lässt sich in der Paint-Funktion auslesen, ob man repaint() oder repaint(int,int,int,int) aufrufe?

Gibt es eine andere Möglichkeit???:L ein getGraphics() scheints nicht zu geben :(
Ich könnte beim ersten Paint das graphics-Objekt in ein globales speichern und dann nur den winzigen Bereich neuzeichnen.
 

Marco13

Top Contributor
Eigentlich sollte man sich das Rechteck, das man bei repaint(x,y,w,h) angegeben hat, in der paint-Methode dann als sowas wie graphics.getClip() abholen können - hab' das aber ehrlich gesagt noch nie wirkich verwendet, das braucht man wirklich nur, wenn das painten ansonsten SEHR aufwändig ist, und das versucht man ja ohnehin zu vermeiden...
 

Paddy.

Aktives Mitglied
ja bisher wird die zeit nur aktualisiert wenn eine Tasteneingabe erfolgt die eh ein repaint auslöst.

Wirklich aufwendig ist das nicht, aber wenn das im Sekunden-Takt mache ist das wohl nicht sinn der Sache.
Ich muss da nur die unteren 20Pixel aktualisieren.
Werde mal gucken was getClip() liefert.

Also man ruft
Java:
repaint(a,b,c,d);
g.getClipX(); //liefert a
g.getClipY(); // liefert b
g.getClipWidth(); // liefert c
g.getClipHeight(): //liefert d

:toll:
 
Zuletzt bearbeitet:

Neue Themen


Oben