Toon posts:

[Java] JPanel in JPanel en invalidate?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleempje met een jpanel die niet goed word gerepaint. M'n panel structuur is als volgt:

mainpanel bevat een clientpanel.
code:
1
mainpanel.add(clientpanel, BorderLayout.CENTER)


Nu staat op clientpanel een jbutton die functie1() van mainpanel aanroept. functie1() doet vervolgens:
code:
1
2
mainpanel.removeall();
mainpanel.validate();


Het vreemde is dat clientpanel wel verwijderd word, maar hij blijft zichtbaar op mainpanel. maw pas na een manuele resize van mainpanel verdwijnt clientpanel.

Ik vermoed dat het door het volgende komt:
1. gebruiker klikt op jbutton in clientpanel
2. event thread van clientpanel start functie1() van mainpanel
3. functie1 in mainpanel verwijderd clientpanel
4. nadat functie1 is voltooid gaat "hij" terug naar clientpanel.

Omdat clientpanel niet meer bestaat kan hij theoretisch niet meer terug, toch gaat hij terug zonder exceptions.

Weet iemand een mogelijke oplossing?

Verwijderd

Topicstarter
code:
1
2
3
mainpanel.removeall();
mainpanel.validate();
mainpanel.repaint();


Dat werkt wel. Weet iemand waarom repaint() het wel doet, maar validate() niet?
8)7

[edit]
Een debug sessie was wel handig, validate() repaint niet als er geen componenten meer zijn, eigenlijk best logisch :Y)

Slotje! })

[ Voor 34% gewijzigd door Verwijderd op 05-10-2004 14:11 ]