[JAVA] repaint doet zijn werk niet?

Pagina: 1
Acties:

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Ik heb een programma dat een kaart moet tekenen voor de speler en even later een kaart moet spelen die de computer speeld. De kaart die de computer speeld wordt wel getekend maar de kaart die ik speel niet. (komt waarschijnlijk doordat het programma doorloopt als de computer bepaald welke kaart hij moet spelen). het invoegen van sleep() werkt ook niet om hem te laten repainten.

iemand enig idee hoe ik dat kan verhelpen.
dus dat ie eerst mijn kaart speelt. dan 1 sec wacht (doet ie al) en dan de kaart van de computer (doet ie ook al)

alle tips zijn welkom.

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
update method implementeren, en daarin paint aanroepen.

voorbeeld:

public void paint(Graphics g)
{
//paint iets.
}

public void update(Graphics g)
{paint(g);
}

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Op woensdag 10 juli 2002 13:53 schreef CK het volgende:
update method implementeren, en daarin repaint aanroepen.
hoe bedoel je dat precies. zelf een update methode schrijven of op een of andere manier (waarschijnlijk this.update()) update() aanroepen?

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
repaint roept namelijk update aan en dan paint() toch?

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
zie m`n voorbeeld hierboven, werkt natuurlijk alleen als je paint met Graphics.. wil je componenten zoals jtextarea`s, combo`s etc laten repainten van moet je de methode validate() aanroepen.

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
ik gebruik zelf geen paint(Graphics g) methode. dat laat ik aan de superclass over (JApplet). ik voeg de plaatjes toe via een JPanel. hoe moet ik dit dan doen? of kan dat dan op dezelfde manier maar dan inplaats van paint(g), repaint() doen?

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
dus ik moet in plaats van repaint. de kaart aanroepen en dan deze validate() doen
dus kaart1.validate()?

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
zal het even proberen. zal dus niet meer heel direct reageren. als het werkt post ik het wel. anders zijn alle tips nog steeds welkom natuurlijk.

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
gewoon even validate in je JApplet aanroepen en dan werkt et waarschijnlijk wel.

in awt kan je met repaint meestal wel af maar swing gebruikt de method validate() om alle componenten in een container te repainten.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op woensdag 10 juli 2002 13:58 schreef dexter07051982 het volgende:
[quote]
Op woensdag 10 juli 2002 14:00 schreef dexter07051982 het volgende:
quote]
Op woensdag 10 juli 2002 14:00 schreef dexter07051982 het volgende:
zou je svp als je zo kort na elkaar reageert de edit knop willen gebruiken
tnx

Doet iets met Cloud (MS/IBM)


  • Expander
  • Registratie: Februari 2001
  • Niet online
Je kan niet sleep() doen,

Misschien moet je een aparte Thread of Runnable implementing iets maken.

Dan kan je die thread vanuit je programma vertellen wat ie steeds moet tekenen.

Expanding the inexpandable


  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Sorry. zal voortaan de edit gebruiken. had niet gezien dat ie bestond. maar goed

het werkt nog niet

en hoe bedoel je met een apparte thread?. in de thread laten sleepen en die thread dan het vervolg laten aanroepen?
of iets geheel anders?

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Oke, met een extra thread (sleep) de applet vrijmaken en dan werkt het wel.

daarna roep je weer de applet aan en gaat het gewoon verder.

Bedankt voor de hulp iedereen.
Pagina: 1