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

Langage Java Discussion :

Utilisation de "javax.swing.Timer"


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut Utilisation de "javax.swing.Timer"
    Bonjour à tous,

    en ce samedi soir, je me replonge dans un TP de java...
    Je dois écrire un programme me permettant d'afficher la date courante sur la sortie standard, toutes les 1 seconde, afin de me familiariser avec Timer...
    J'ai donc lu la javadoc, et ai pondu ceci :

    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
    import javax.swing.*;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class test {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		  int delay = 1000; //milliseconds
    		  ActionListener taskPerformer = new ActionListener() {
    		      public void actionPerformed(ActionEvent evt) {
    		          System.out.println(java.util.Calendar.getInstance().getTime().toString());		      
    		      }
    		  };
    		  new Timer(delay, taskPerformer).start();
     
    	}
     
    }
    ... Alors, ça fait un moment que j'ai pas fait de java, mais si je me souviens bien...
    J'ai juste à faire : "javac test.java"... J'ai aucune erreur à la compilation, mais quand je lance mon fichier test (java test)... Rien ne s'affiche...

    Ca fait 1h que j'essaie de comprendre...

    Toute aide sera la bienvenue!

    Merci d'avance.

  2. #2
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut
    Bonsoir,

    pour moi le code compile. Tu devrais utiliser Eclipse ca iras plus vite.

    Sinon ton code est correcte mais comme tu sors immédiatement de ta fonction main le programme s’arrête.

    Tu devrais faire un JFrame ou tu mettrais ton code concernant le Timer

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut
    Merci de votre réponse déjà!

    Moi aussi ça compile, mais il m'est demandé d'obtenir l'affichage sur la sortie standard... C'est pour ça que j'ai pas utilisé de fenêtre...
    Je ne comprends pas pourquoi, quand je lance mon appli dans la console, je n'obtiens pas une suite de date...
    Mon 'println' devrait pourtant produire ça...

  4. #4
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut
    car vous créez un objet ActionListener qui est une classe gérant les clicks sur les boutons en swing. Le code à l intérieur n'est jamais appeler.

    Mettez directement votre system.out... dans la fonction et vous aurez quelque chose sur la sortie standard

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut
    Je suis désolé, j'avoue ne pas bien comprendre ou mettre mon "println"...
    J'ai lu cette javadoc : http://docs.oracle.com/javase/6/docs/api/

    Et Timer prend en paramêtre un ActionListener... Je pensais donc qu'à chaque cycle, Timer déclenchait une action (tout comme un click sur un bouton) "entendu" par l'ActionListener, qui déclenchait donc le "actionPerformed"...
    Qu'ai je mal compris?...

  6. #6
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut
    Car tu sorts tout de suite de ton programme. Si tu dit pas à ton programme de ne pas sortir avec une boucle infini, une fenêtre ou un thread il se termine...

    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
    40
    41
    42
    43
    44
    45
    package test;
     
    import java.awt.HeadlessException;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
     
    public class Play extends JFrame
    {
        private static final long serialVersionUID = 4728920536811198811L;
     
     
        protected Timer jolieTimer;
     
        public Play() throws HeadlessException
        {
    	super();
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	setTitle(":)");
     
    	int delay = 1000; //milliseconds
    	  ActionListener taskPerformer = new ActionListener() {
    	      public void actionPerformed(ActionEvent evt) {
    	          System.out.println(java.util.Calendar.getInstance().getTime().toString());		      
    	      }
    	  };
    	  setVisible(true);
    	  jolieTimer = new Timer(delay, taskPerformer);
    	  jolieTimer.start();
     
        }
     
     
     
     
        /**
         * @param args
         */
        public static void main(String[] args)
        {	  
    	new Play();
     
        }
     
    }

Discussions similaires

  1. Problème d'utilisation du package javax.swing.JFrame;
    Par patricia_zer dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 12/05/2015, 09h47
  2. Délai du premier event : javax.swing.Timer
    Par Birmania dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 28/06/2012, 22h06
  3. Chronomètre simple utilisant un javax.swing.Timer
    Par Johann.Heymes dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/03/2011, 19h09
  4. [javax.swing.Timer] Arrêter mon Timer
    Par GLDavid dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 17/01/2006, 15h26
  5. Utilisation javax.swing.ButtonGroup dans Visual Editor
    Par inch dans le forum Composants
    Réponses: 3
    Dernier message: 16/12/2005, 16h25

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