|
| Applet: undgå repaint() Fra : AH |
Dato : 14-12-02 01:37 |
|
Hej derude...
Jeg sidder med en applet, hvor der er en del animation. Jeg har så fået et
fif om, at det ville være smart at undgå repaint() - da dens kald af
paint(g) ikke altid skete med det samme! Så jeg kunne i stedet i run() kalde
min egen paint metode - fx myPaint() - hvor der selvfølgelig er double
buffering, og metoden slutter af med
g.drawImage(bufferI, 0, 0, this);
I denne metode skulle jeg så have hentet noget getGraphics(), men det kan
jeg ikke få til at virke, selvom jeg har prøvet forskellige ting. Hvis
skræmen ikke bliver hvid, så kører tråen kun én frame ca, før alt står helt
stille.
Er der en der lige kan hjælpe ... tak.
:) AH
| |
Jesper Sørensen (14-12-2002)
| Kommentar Fra : Jesper Sørensen |
Dato : 14-12-02 03:15 |
|
"AH" <NO_SPAMhauberg@get2net.dk> wrote in message
news:n4vK9.107$u92.4713@news.get2net.dk...
> Hej derude...
>
> Jeg sidder med en applet, hvor der er en del animation. Jeg har så fået et
> fif om, at det ville være smart at undgå repaint() - da dens kald af
> paint(g) ikke altid skete med det samme! Så jeg kunne i stedet i run()
kalde
> min egen paint metode - fx myPaint() - hvor der selvfølgelig er double
> buffering, og metoden slutter af med
> g.drawImage(bufferI, 0, 0, this);
> I denne metode skulle jeg så have hentet noget getGraphics(), men det kan
> jeg ikke få til at virke, selvom jeg har prøvet forskellige ting. Hvis
> skræmen ikke bliver hvid, så kører tråen kun én frame ca, før alt står
helt
> stille.
> Er der en der lige kan hjælpe ... tak.
>
> :) AH
Ja jeg er godt nok lidt rusten i det men kan du ikke bare tilføje din egen
void repaint() metode til din klasse og så lade den gøre ingenting. Den skal
indsættes i den klasse hvor din paint rutine er. Så kalder JVM'en den, men
du har lavet din egen, og så får den ikke lov til at opdatere viewet.
mvh
JS
| |
AH (14-12-2002)
| Kommentar Fra : AH |
Dato : 14-12-02 10:56 |
|
> Ja jeg er godt nok lidt rusten i det men kan du ikke bare tilføje din egen
> void repaint() metode til din klasse og så lade den gøre ingenting. Den
skal
> indsættes i den klasse hvor din paint rutine er. Så kalder JVM'en den, men
> du har lavet din egen, og så får den ikke lov til at opdatere viewet.
>
> mvh
> JS
Jeg tror at du har misforstået mig - eller jeg har ikke forklaret problemet
godt nok! Problemet er, at i min egen paint metode - myPaint(), at få skabt
et 'Graphics g' object, som jeg kan tegne bufferImage med, når det er
færdigt produceret i samme metode.
Fx:
run() {
....
myPaint();
.....
}
public void myPaint() {
bufferG.draw..... // bufferG har i init() gjort:
bufferG.bufferI.getGraphics();
.....
g.drawImage(bufferI, 0, 0, this);
/* Her er problemet, for hvor og hvordan skal jeg få lavet en instans
Graphics g, som jeg kan bruge til at tegne på skærmen med. Graphics g plejer
jo at komme fra repaint(), som er blevet kaldt i run().
public void repaint() {
paint(g);
}
? */
// Mvh AH
"Jesper Sørensen" <m_burns@XXXkampsax.k-net.dk> skrev i en meddelelse
news:ate42f$dg$1@eising.k-net.dk...
> "AH" <NO_SPAMhauberg@get2net.dk> wrote in message
> news:n4vK9.107$u92.4713@news.get2net.dk...
> > Hej derude...
> >
> > Jeg sidder med en applet, hvor der er en del animation. Jeg har så fået
et
> > fif om, at det ville være smart at undgå repaint() - da dens kald af
> > paint(g) ikke altid skete med det samme! Så jeg kunne i stedet i run()
> kalde
> > min egen paint metode - fx myPaint() - hvor der selvfølgelig er double
> > buffering, og metoden slutter af med
> > g.drawImage(bufferI, 0, 0, this);
> > I denne metode skulle jeg så have hentet noget getGraphics(), men det
kan
> > jeg ikke få til at virke, selvom jeg har prøvet forskellige ting. Hvis
> > skræmen ikke bliver hvid, så kører tråen kun én frame ca, før alt står
> helt
> > stille.
> > Er der en der lige kan hjælpe ... tak.
> >
> > :) AH
>
> Ja jeg er godt nok lidt rusten i det men kan du ikke bare tilføje din egen
> void repaint() metode til din klasse og så lade den gøre ingenting. Den
skal
> indsættes i den klasse hvor din paint rutine er. Så kalder JVM'en den, men
> du har lavet din egen, og så får den ikke lov til at opdatere viewet.
>
> mvh
> JS
>
>
| |
Jesper Sørensen (14-12-2002)
| Kommentar Fra : Jesper Sørensen |
Dato : 14-12-02 16:31 |
|
> Jeg tror at du har misforstået mig - eller jeg har ikke forklaret
problemet
> godt nok! Problemet er, at i min egen paint metode - myPaint(), at få
skabt
> et 'Graphics g' object, som jeg kan tegne bufferImage med, når det er
> færdigt produceret i samme metode.
> Fx:
> run() {
> ...
> myPaint();
> ....
> }
>
> public void myPaint() {
> bufferG.draw..... // bufferG har i init() gjort:
> bufferG.bufferI.getGraphics();
> ....
> g.drawImage(bufferI, 0, 0, this);
> /* Her er problemet, for hvor og hvordan skal jeg få lavet en instans
> Graphics g, som jeg kan bruge til at tegne på skærmen med. Graphics g
plejer
> jo at komme fra repaint(), som er blevet kaldt i run().
søg på getgraphics()
JS
| |
|
|