hoe een JPanel repainten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tarkin
  • Registratie: Juni 2006
  • Laatst online: 21:44
Ik heb een serieus probleem. Ik ben bezig aan een panel die vragen dynamisch weergeeft. De vragen worden opgehaald uit een database en hebben een variabel aantal antwoorden. Tot hier gaat alles goed, ik krijg mijn eerste vraag zonder problemen op het panel. Maar vanaf dat ik op de knop wil drukken om een tweede vraag te krijgen, lukt dit niet. Het panel blijft de eerste vraag weergeven. Door middel van kleine testjes weet ik wel dat de 2e vraag er achter zit.

Wat ik al heb geprobeerd maar niet werkte
repaint(). Dit doet gewoon niks, het zou via deze methode moeten werken maar ik weet het echt niet.
revalidate() Hierdoor krijgt ik wel mijn 2e vraag te zien, maar alle radiobuttons van de eerste vraag worden op een lijn gezet en de nieuwe radiobuttons komen eronder te staan. Wat de hele layout naar de knoppen helpt. Nu is de vraag hoe ik dit dynamisch kan oplossen, aangezien al mijn radiobuttons er dynamisch opgeplakt worden. Enig idee?

Dit is de code:

code:
1
*snip*

[ Voor 67% gewijzigd door RobIII op 23-03-2010 21:29 ]


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 19-09 08:47
je initieert de gui nu de hele tijd in regel 130 t/m 142? Dan krijg je toch steeds nieuwe panels en labels?

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Tarkin
  • Registratie: Juni 2006
  • Laatst online: 21:44
We doen dit nu op deze manier omdat we met die for lus zitten om die radiobuttons aan te maken. Ik heb al zitten zoeken om alles te verwijderen en opnieuw te plaatsen maar dit wou ook niet echt werken.

We gebruiken de repaint() methode wel in een andere klasse, maar die zit niet met het probleem van het dynamische aantal radiobuttons, daar is alles al gedeclareerd op de pagina zelf. Dan kunnen we werken met een aparte methode om alles te veranderen en gebruiken we de InitGUI maar een keer

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Doe me een lol en plaats voortaan, als je code plaatst, enkel relevante(!) code a.u.b. Het is totaal onzinnig om 150+ regels code te gaan plaatsen als er maar een klein aantal regels relevant zijn voor je probleem.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • OrbitZ
  • Registratie: Juni 2001
  • Laatst online: 26-05 13:07
Ik kan de code nu niet meer zien maar als je de vragen dynamisch opbouwt moet je wel eerste de oude controls verwijderen met removeAll en vervolgens de nieuwe knoppen toevoegen.

Acties:
  • 0 Henk 'm!

  • Tarkin
  • Registratie: Juni 2006
  • Laatst online: 21:44
Ik had het gedaan om het volledig te tonen. maar ik zal het vanavond eens proberen met removeall

Acties:
  • 0 Henk 'm!

  • Tarkin
  • Registratie: Juni 2006
  • Laatst online: 21:44
Ik heb het al gevonden.

Wat ik dus gedaan heb:
Ik laat iedere keer het panel opnieuw verschijnen. Ik geef er een tellervariabele aan mee zodat hij altijd de volgende vraag ophaalt. Doordat ik het altijd opnieuw laat verschijnen is het geen probleem om de initgui aan te roepen.

Ik weet dat dit niet echt de juiste manier is, maar onze deadline ligt tegen vrijdag dus het moest snel gebeuren (schoolproject)
Pagina: 1