Avatar billede madshenrik Nybegynder
31. oktober 2000 - 19:56 Der er 12 kommentarer og
1 løsning

Timer haster !!!

Delay på to sekunder før der fortsættes

Jeg har en kode jeg gerne vil have sat et delay på nogle steder. Her er koden.

public static giKort()
    {
    if (giver == 1)    // Hvis player 1 gir
    {
        for (int i = 1; i < 2; i ++)
        {
        CardGame.p3.insertAtTop(CardGame.p1.removeTopCard()); // player 2 får de to første kort
        // set delay på do sekunder
        }   
        for (int j = 1; j < 2; i ++)
        {   
        CardGame.p2.insertAtTop(CardGame.p1.removeTopCard()); // player 2 får de to første kort
        (CardGame.p2.getTopCard()).turnFaceDown();
        // set delay på do sekunder
        }
        for (int i = 3; i < 4; i ++)
        {
        CardGame.p3.insertAtTop(CardGame.p1.removeTopCard()); // player 1 får de to sidste kort
        // set delay på do sekunder
        }
       
        for (int j = 3; j < 4; i ++)
        {   
        CardGame.p2.insertAtTop(CardGame.p1.removeTopCard()); // player 2 får de to sidste kort
        (CardGame.p2.getTopCard()).turnFaceDown();
        // set delay på do sekunder
        }
    }

Har læst mig frem til at jeg kan bruge klassen timer men kan ikke helt gennemskue hvordan det skal virke.

Håber nogen kan hjælpe.

Mads

Avatar billede lbhansen Nybegynder
31. oktober 2000 - 20:16 #1
Prøv Thread.sleep( 2000 );
Avatar billede stigc Nybegynder
31. oktober 2000 - 20:22 #2
æhhh hvem siger han implements Thread?
Avatar billede el_gnu Nybegynder
31. oktober 2000 - 20:27 #3
Du kan implementere ActionListener interfacet hvis du vil bruge en timer.
Eks.

public class test implements ActionListener {

  Timer t = new Timer(this, 2000); //this refererer til denne klasse der er en ActionListener.
                                    // andet argument er tiden i millisekunder

  public static void main(String args[]) {
    t.start();
  }

  public void actionPerformed(ActionEvent e) {
    // her skriver du den kode der skal eksekveres med X antal millisekunders interval
  }

}
Avatar billede lbhansen Nybegynder
31. oktober 2000 - 20:29 #4
læg mærke til, at jeg skriver Thread med stort, og kalder en statisk metode sleep, der modtager antal millisekunder. Thread.sleep(2000) betyder at den nuværende kører tråd( denne )bliver sat til at sove!
Avatar billede codemon Nybegynder
31. oktober 2000 - 20:31 #5
metoden  System.currentTimeMillis()  returnerer (i millisekunder) tiden der er gået siden 1970 som en long.
Så kan du lade programmet vente indtil der er gået den tid du ønsker.
Avatar billede lbhansen Nybegynder
31. oktober 2000 - 20:33 #6
Og lave hvad, busy waiting?
Avatar billede codemon Nybegynder
31. oktober 2000 - 20:33 #7
hmm, de sidste par svar kom imens jeg skrev mit.
Avatar billede stigc Nybegynder
31. oktober 2000 - 20:52 #8
ja men den kræver at hans klasse implementere klasse Thread!
Avatar billede lbhansen Nybegynder
31. oktober 2000 - 20:57 #9
Nej det gør ej. Prøv det selv!
Avatar billede stigc Nybegynder
31. oktober 2000 - 21:00 #10
skal vi væde!
Avatar billede stigc Nybegynder
31. oktober 2000 - 21:05 #11
Jeg må lige rette mig selv lidt: Man skal \"implements Runnable\"
Avatar billede lbhansen Nybegynder
31. oktober 2000 - 21:08 #12
public class Sleep{

        public static void main( String a[] )throws Exception{
                for( int i = 0; i<5; i++ ){
                        System.out.print(\".\");
                        Thread.sleep(1000);
                }
                System.out.println(\"\\nJeg kunne se fem prikker der kom langsomt frem paa skaermen\");
        }
}
Avatar billede madshenrik Nybegynder
31. oktober 2000 - 21:49 #13
Det virker fint ibhansen, det var det jeg have brug for.

Mads
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