Le timer

Le timer - Java - Programmation

Marsh Posté le 17-01-2011 à 00:05:12    

Bonsoir tous le monde,j'ai un problème au niveau de mon code c'est à dire que je dois afficher un message pendant un laps de temps précis 8 secondes et passer ce laps de temps le message ne doit plus être visible.Pour ce faire j'ai donc utiliser un timer,le  code que j'ai insérer marche mais ne donne pas le résultat voulue car il affiche mon message en continue toute les 8 secondes.C'est pourquoi je vous demande votre aide voici mon code.
<citation>import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Date;
import java.util.*;  
import java.awt.*;
 
 
public class projet
{
 
public static void main (String[] args)    {  
   System.out.println("Niveau 1 veuillez tapez le nombre qui est affiché." );  
 
 Timer timer = new Timer();
        timer.schedule (new TimerTask() {
 
     public void run()
  {  
      int a = 1030;/*initialisation de la variable  dans le run*/      
 Scanner in = new Scanner(System.in);            
                     
 System.out.println ( + a);
            }
     }, 0, 8000);
 
 
     
}
     
} </citation>

Reply

Marsh Posté le 17-01-2011 à 00:05:12   

Reply

Marsh Posté le 17-01-2011 à 09:23:30    

La méthode schedule que tu as utilisé "schedule(TimerTask task, long delay, long period)" programme l'execution toutes les 8 secondes.
 
Utilise une version qui ne lance la tache qu'une fois après un delai d'attente.
 
En bref :

Code :
  1. timer.schedule (new TimerTask() {
  2. ...
  3. }, 8000);

Reply

Marsh Posté le 17-01-2011 à 22:04:05    

c'est justement ce que je voudrais faire,mais je sais pas le faire.

Reply

Marsh Posté le 17-01-2011 à 23:48:52    

...
 
Dans ton code, tu utilises la méthode à 3 paramètres :
 - le TimerTask
 - le délai (0)
 - la période à laquelle le TimerTask est lancé (8000)
 
Il suffit juste que tu enlèves le 2ème paramètre

Reply

Marsh Posté le 18-01-2011 à 12:55:14    

merci j'ai fait ce que tu as dit et sa à stoppé la répétition.Mais le problème c'est que sa fait l'inverse de ce que je veux,car le message n'est pas visible pendant 8 secondes puis il apparait ,alors que je veux que le message apparaisse pendant 8 secondes et qu'il ne sot plus visible.
Aurait tu une solution s'il te plait?

Reply

Marsh Posté le 18-01-2011 à 15:14:35    

En fait, dans le TimerTask il faut mettre le code pour effacer le message.
 
Mais je pressent que ton problème en fait c'est que tu veux effacer un message affiché sur la sortie standard... et là je ne sais même pas si c'est possible (délai ou non).
 
Essaye plutôt d'afficher ton message dans quelque chose que tu peux masquer/supprimer après (interface swing par exemple).

Reply

Marsh Posté le 18-01-2011 à 22:36:10    

J'essayerais de faire sa.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed