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 :

Temporisation d'un affichage


Sujet :

avec Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut Temporisation d'un affichage
    Bonjour,
    Le "tac" ne s'affiche pas, pouvez-vous me dire pourquoi svp !
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.Timer;
     
    public class test2 {
     
    	test2() {
     
    		int i;
    		System.out.println("lancement du timer");
    		Timer timer; 
     
    		for (i = 0; i < 5; i++) {
    			// Création et lancement du timer
    			timer = tempo();
    			timer.start();
    			System.out.println("boucle = " + i);
    		}
    	}
     
    	// Méthode renvoyant un timer prêt à démarrer
    	public Timer tempo() {
     
    		// Création d'une instance de listener associée au timer
    		ActionListener action = new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.out.println("tac");
    			}
    		};
    		System.out.println("tic...");
    		// le timer génère un top chaque 1000 millième de seconde
    		return new Timer(1000, action);
    	}
     
    	public static void main(String[] args) {
    		System.out.println("main");
    		test2 t = new test2();
    	}
    }

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Tu devrais donner une petite explication de ce que tu veux réaliser. Si c'est afficher 5 fois tic tac avec une seconde entre chaque "tic...tac", je pense que tu t'y prends mal.

    Lorsque tu démarres le timer celui ci se répète l'action toutes les secondes. Donc tu vas afficher tac 5 fois par seconde.

    Sinon pour répondre à ta question, le tac n'apparait pas car ton programme se termine avant. essaye de mettre un sleep avant que ton application se termine.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par tupac25 Voir le message
    Tu devrais donner une petite explication de ce que tu veux réaliser. Si c'est afficher 5 fois tic tac avec une seconde entre chaque "tic...tac", je pense que tu t'y prends mal.
    C'est effectivement mon objectif !

    Citation Envoyé par tupac25 Voir le message
    Lorsque tu démarres le timer celui ci se répète l'action toutes les secondes. Donc tu vas afficher tac 5 fois par seconde.
    C'est le résultat affiché, mais pas celui désiré...

    Citation Envoyé par tupac25 Voir le message
    le tac n'apparait pas car ton programme se termine avant. essaye de mettre un sleep avant que ton application se termine.
    Je suis débutant, ou placerais-tu le slip ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Je pense que tu devrais utiliser la classe java.util.Timer et non la classe javax.swing.Timer.

    Voici comment je ferais:
    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
    26
    27
    28
    29
    30
    public class test2 {
     
    	test2() {
    		System.out.println("lancement du timer");
     
    		Timer timer = new Timer();
    		timer.schedule(new MyTask(), 0, 2000);
    	}
     
    	class MyTask extends TimerTask{
     
    		@Override
    		public void run() {
    			System.out.println("tic...");
    			try {
    				Thread.sleep(1000);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
    			System.out.println("tac");			
    		}		
    	}
     
     
     
    	public static void main(String[] args) {
    		System.out.println("main");
    		new test2();
    	}
    }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 34
    Points : 46
    Points
    46
    Par défaut
    Bon, j'édite parce que c'est pas bon ce que j'ai dis xD.

    En faite tu ne laisse pas le temps à ton programme de voir l'effet du Timer.
    Regarde essaye comme ça :
    Code java : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.Timer;
    import javax.swing.JFrame;
     
    public class test2 {
     	test2() {
     
    		int i;
    		System.out.println("lancement du timer");
    		Timer timer; 
     
    			// Création et lancement du timer
    			timer = tempo();
    			timer.start();
    	}
     
    	// Méthode renvoyant un timer prêt à démarrer
    	public Timer tempo() {
     
    		// Création d'une instance de listener associée au timer
    		ActionListener action = new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.out.println("tac ");
    			}
    		};
    		compteur++;
    		System.out.println("tic...");
    		// le timer génère un top chaque 1000 millième de seconde
    		return new Timer(1000, action);
    	}
     
    	public static void main(String[] args) {
    		System.out.println("main");
    		test2 t = new test2();
    		new JFrame().setVisible(true);
    	}
    }

    J'ouvre un fenetre comme ça le programme reste ouvert

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par tupac25 Voir le message
    Je pense que tu devrais utiliser la classe java.util.Timer et non la classe javax.swing.Timer.

    Voici comment je ferais:
    Merci tupac25,
    ton code répond à mon besoin.

    Désolé Pugnasuxan, ta proposition fait "tic, tac, tac, tac..."
    Alain

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par Pugnasuxan Voir le message
    Bon, j'édite parce que c'est pas bon ce que j'ai dis xD.

    En faite tu ne laisse pas le temps à ton programme de voir l'effet du Timer.
    Regarde essaye comme ça :
    Code java : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.Timer;
    import javax.swing.JFrame;
     
    public class test2 {
     	test2() {
     
    		int i;
    		System.out.println("lancement du timer");
    		Timer timer; 
     
    			// Création et lancement du timer
    			timer = tempo();
    			timer.start();
    	}
     
    	// Méthode renvoyant un timer prêt à démarrer
    	public Timer tempo() {
     
    		// Création d'une instance de listener associée au timer
    		ActionListener action = new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.out.println("tac ");
    			}
    		};
    		compteur++;
    		System.out.println("tic...");
    		// le timer génère un top chaque 1000 millième de seconde
    		return new Timer(1000, action);
    	}
     
    	public static void main(String[] args) {
    		System.out.println("main");
    		test2 t = new test2();
    		new JFrame().setVisible(true);
    	}
    }

    J'ouvre un fenetre comme ça le programme reste ouvert
    Tu oublies que l'action que tu lances avec le timer se répète toutes les secondes alors que l'affichage de "tic" n'est pas répété.


    @alainb
    derien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Temporisation et affichage console sous Linux
    Par ptyxs dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2011, 00h33
  2. temporiser l'affichage d'un block
    Par Renand dans le forum jQuery
    Réponses: 11
    Dernier message: 22/07/2010, 16h51
  3. [XL-2007] Temporiser en VBA un affichage d'écran dynamique
    Par Harry Covair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2009, 14h44
  4. Affichage de div avec temporisation
    Par licorne dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2006, 16h13
  5. [Pmode] Affichage variable + temporisation
    Par Onil_ dans le forum Assembleur
    Réponses: 4
    Dernier message: 26/04/2006, 15h18

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