Avatar billede jespersahner Nybegynder
17. juni 2003 - 23:10 Der er 7 kommentarer og
1 løsning

Swing - JFrame opdateres ikke rigtigt

Jeg har en grafisk applikation bestående af en JFrame, hvortil er knyttet et JPanel, som igen indeholder de øvrige komponenter.

Min applikation er dynamisk i den forstand, at nye komponenter tilføjes og fjernes ved forskellige events.

Problemet er, at når jeg fjerner komponenter, bliver der "små rester" af komponenterne tilbage. Hvis jeg dog f.eks. trækker i vinduet eller minimerer og derefter maksimerer, forsvinder disse rester, så jeg mangler en form for opdatering af vinduet.

Jeg har forsøgt med validate() på såvel min JFrame som mit JPanel uden held.

Hvad er forklaringen på dette, og hvad kan jeg herefter gøre?
Avatar billede aslan Nybegynder
17. juni 2003 - 23:26 #1
har du prøvet repaint();
Avatar billede jespersahner Nybegynder
17. juni 2003 - 23:55 #2
Næ..men det løser faktisk problemet. Tusind tak!
Avatar billede jespersahner Nybegynder
17. juni 2003 - 23:56 #3
Du kan jo lige oprette et svar, så er der point til dig :-)
Avatar billede mosquito Nybegynder
17. juni 2003 - 23:56 #4
har hørt om et lignende problem, det blev løst med doublebuffered.. se pdf

http://venus.cs.depaul.edu/se450/lecture5-1-handout.pdf
Avatar billede =maddog= Nybegynder
18. juni 2003 - 07:04 #5
Essensen er her at Swing anvender dirty regions til at gentegne. Det vil sige at den forsøger at bestemme hvilke områder der er ændret og kun gentegne disse. Hvis de rigtige områder ikke bliver markeret som dirty er eneste mulighed at tvinge en fuldstændig gentegning igennem. Dette sker f.x. ved en resize og gøres (som sagt) programmelt med Component.repaint().
Avatar billede jespersahner Nybegynder
18. juni 2003 - 09:51 #6
Det "sjove" er, at min applikation er sådan skruet sammen, at jeg gentegner i den forstand, at jeg først foretager JPanel.removeAll() og derefter tilføjer komponenterne igen - men det er åbenbart ikke nok. repaint() giver dog det ønskede resultat.
Avatar billede aslan Nybegynder
18. juni 2003 - 13:35 #7
svar...
Avatar billede jespersahner Nybegynder
19. juni 2003 - 09:39 #8
Så er det på plads :-)
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