IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

timer stoppé au bout d'un certain temps ou à l'accomplissement d'une action


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Points : 61
    Points
    61
    Par défaut timer stoppé au bout d'un certain temps ou à l'accomplissement d'une action
    Bonjour, j'aimerai savoir comment faire un programme du genre :

    timer.start
    do {
    une action
    resultat de l'action
    }
    while ( resultat de l'action != resultat attendu ou timer==15 secondes);

    Je ne sais pas trop comment faire.
    J'ai vu plusieurs choses avec l'objet timer (utils ou swing) mais à chaque fois je bloque sur un point lors de l'implémentation...
    Est-ce que je pense de travers ?
    Merci !

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Points : 61
    Points
    61
    Par défaut
    En fait j'ai répondu à ma question toute seule finalement (enfin, je ne sais tjrs pas si c'est la meilleur approche mais..).
    J'ai creer cette classe TimerCard:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import java.util.TimerTask;
    import java.util.Timer;
     
    public class TimerCard {
      private Timer timer;
      Boolean bool =false;
      public TimerCard(int seconds){
     
          timer = new Timer();
          timer.schedule(new RemindTask(), seconds * 1000);
        }
     
        public Boolean getBool() {
        return bool;
      }
     
        class RemindTask extends TimerTask {
          public void run() {
            System.out.println("Time's up!");
            bool=true;
            timer.cancel(); 
          }
      }
     
    }
    Et je m'en suis servie comme ceci dans mon autre classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          TimerCard timer=new TimerCard(15);
          do {
    //une action
    //resultat de l'action
          }
          while(timer.getBool()==false || resultat de l'action != resultat attendu);
    Voilà, je met en résolu mais si vous avez des commentaires sur la façon de faire n'hésitez pas !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Juste une petite remarque sur les conditions de ton while, je pense que tu voulais dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(timer.getBool()==false && resultat de l'action != resultat attendu);
    Dans mon cas, dès que l'une des deux conditions n'est plus bonne tu sors de ton do while, donc soit que le temps impartie est fini soit que tu as obtenu le résultat souhaité.

    Or dans ton cas il faut que les deux conditions soit requises pour sortir de ton do while... donc que le temps soit écoulé et que tu ais le bon résultat.


    Après, vu que je ne sais pas ce que tu souhaites faire, je peux me trompé...

    Concernant le timer, je crois pas en avoir eut besoin, désolé...

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    Oui pourquoi pas, mais je trouve cela un peu lourd pour tester que 15 secondes se sont écouler !

    y a beaucoup plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    long tempsMax = System.currentTimeMillis() + 15000;
    do {
    	// une action
    	// resultat de l'action
    } while(tempsMax > System.currentTimeMillis() && resultat de l'action != resultat attendu);
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Points : 61
    Points
    61
    Par défaut
    Merci pour vos deux remarques elles sont tout à fait justifiées

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/05/2007, 15h37
  2. [VB6] MessageBox a faire disparaître au bout d'un certain temps
    Par ebgdas dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 22/04/2006, 23h20
  3. update qui bloque au bout d'un certain temps
    Par delaio dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/03/2006, 09h51
  4. Stopper l'exécution d'une fonction au bout d'un certain temp
    Par Eagle959 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/03/2006, 18h16
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo