CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Compte à rebour en Java

DébutPage précedente
1
Page suivantePage suivante
stalkyce98 stalkyce98
MP
Niveau 2
18 juillet 2018 à 13:15:25

Salut à tous. J'ai besoin d'aide.

J'ai besoin de créer un compte à rebours, sauf que je galére un peu.

On m'as renvoyé sur Timertask et Schedule, mais j'ai un peu de mal à comprendre leur fonctionnement, et je n'arrive à rien.

Je ne demande pas à ce qu'on me code un compte à rebours, quoique, mais plutôt qu'on puisse me donner une sorte de marche à suivre pour coder tout cela.

Je remercie d'avance ceux qui veulent bien m'aider.

TheRealMarco TheRealMarco
MP
Niveau 10
18 juillet 2018 à 15:28:10

Si tu tapes "countdown java" sur google tu auras déjà pas mal de réponses (voire des comptes a rebours entièrement codé).

stalkyce98 stalkyce98
MP
Niveau 2
25 juillet 2018 à 15:42:14

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class CompteEstBon extends JFrame{
    private static String[] plaquettes={"1","1","2","2","3","3","4","4","5","5","6","6","7","7","8","8","9","9","10","10","25","25","50","50","75","75","100","100"};
    private static int Total = (100 + (int)(Math.random()*(999-100))+1);
    static Thread thread = new Thread();
    public CompteEstBon() throws InterruptedException{
        super("Compte est bon");
        JPanel jpFond = new JPanel();
        BorderLayout bl = new BorderLayout();
        jpFond.setLayout(bl);
        
        
        for(int i = 90; i>=0; i--){
            thread.sleep(1000);
            System.out.println(i);
        }
        
        
        Random r = new Random(System.currentTimeMillis());
        
        int position1 = r.nextInt(plaquettes.length);
        String nb1 = plaquettes[position1];
        
        int position2 = r.nextInt(plaquettes.length);
        String nb2 = plaquettes[position2];
        
        int position3 = r.nextInt(plaquettes.length);
        String nb3 = plaquettes[position3];
        
        int position4 = r.nextInt(plaquettes.length);
        String nb4 = plaquettes[position4];
        
        int position5 = r.nextInt(plaquettes.length);
        String nb5 = plaquettes[position5];
        
        int position6 = r.nextInt(plaquettes.length);
        String nb6 = plaquettes[position6];
        

        JPanel jpNord = new JPanel();
        jpNord.add(new JButton(nb1));
        jpNord.add(new JButton(nb2));
        jpNord.add(new JButton(nb3));
        jpNord.add(new JButton(nb4));
        jpNord.add(new JButton(nb5));
        jpNord.add(new JButton(nb6));
        jpFond.add(jpNord,BorderLayout.NORTH);
        
        JPanel jpEst = new JPanel();
        jpEst.add(new JButton(String.valueOf(Total)));
        jpFond.add(jpEst,BorderLayout.EAST);
        
        
        
        this.setContentPane(jpFond);
        this.pack();
        this.setVisible(true);
    }
    
    public void correction(){
        
    }    
}

J'ai ça comme code pour le compte à rebours


for(int i = 90; i>=0; i--){
            thread.sleep(1000);
            System.out.println(i);
        }

Et ça me pose un probleme. En fait, il me lance le compteur, mais je dois attendre la fin pour que le reste se lance. Sauf que je ne vois pas où est le probleme.

Quelqu'un peut m'aider ?

TheRealMarco TheRealMarco
MP
Niveau 10
25 juillet 2018 à 17:56:42

C'est le fonctionnement normal.

thread.sleep fait attendre le thread courant. Étant donné que le reste des instructions sont après le sleep, tu dois tous les attendre pour que ça puisse s'exécuter.

Tu dois exécuter une partie de ton code en parallèle de ton programme principal. Pour cela, tu créés une classe qui hérite de Runnable. Tu mets le code qui doit s'exécuter en parallèle dans la function run(). Il ne te reste plus qu'à instancier ta classe et la démarrer en appelant la méthode start().
Exemple : https://stackoverflow.com/a/3489549

(Tu peux aussi faire avec un Thread anonyme).

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment