Avatar billede mtilsted Nybegynder
06. juni 2001 - 12:29 Der er 4 kommentarer

repaint

Der er en enkelt ting ved repaint jeg ikke forstaar.
Man kan kalde en repaint(int x,int y,int Width,int Height) hvor man angiver hvilke del af dette Component man gerne vil have gentegnet. Men I manualen til repaint staar:
\"This method causes a call to this component\'s update method as soon as possible.\"

Men den eneste update method man kan kalde tager ingen argumenter om nogle størelse, saa hvilken ide kunne den vaere i at angive kordinater til repaint, naar den alligevel ikke kan give dem videre til update.
Avatar billede mpultz Nybegynder
06. juni 2001 - 17:11 #1
Hvordan repaint foregår afhængiger af om vi snakker om Swing eller AWT komponenter.

Hvis vi snakker om Swing så forholder det sig således. Repaint bruger en javax.swing.RepaintManager som tegner komponenten op på ny (eller dele af den hvis det er det man ønsker). update bliver ikke kaldt, men det er tilfældet for AWT komponenter.
Avatar billede mpultz Nybegynder
06. juni 2001 - 17:11 #2
Hov, men det var måske hvordan det foregår i AWT du spurgte om?
Avatar billede mpultz Nybegynder
06. juni 2001 - 18:11 #3
Jeg vil tro det forholder sig således med repaint i AWT.

Jeg tror der bruges clipping. update tager jo et Graphics objekt (som det giver videre til paint metoden) og på et Graphics objekt kan man sætte clipping området. Dvs. det område hvor \"tegning\" er tilladt. Alt \"tegning\" udenfor clipping området bliver ignoreret. Så jeg tror koordinaterne som gives med til repaint benyttes til at sætte clipping området.

Det kan også være at member variable bliver brugt til at holde styr på området der skal tegnes op. Du skal huske at repaint og update ligger i samme klasse så paramteroverførsel til update fra repaint er overflødig.
Avatar billede kristianp Nybegynder
07. juni 2001 - 13:59 #4
Det er rigtigt at det er clipping området der angives.
Når man kalder repaint() metoden, sker der det at GUI tråden kalder update(Graphics g) metoden som tager et Graphics objekt, dette objekt bliver overført automatisk. Update metoden gør det at den først slette det område der er angivet som parameter fra repaint. Derefter kalder den paint() metoden med det samme Graphics objekt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester