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

AWT/Swing Java Discussion :

Afficher l'heure en continu


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut Afficher l'heure en continu
    Bonjour,

    J'ai une application réalisée à l'aide de swing.
    En bas de la frame, j'ai un panel faisant office de barre d'état.

    J'aimerais pouvoir afficher la date et l'heure (heure et minutes) de façon continue, c'est à dire qu'à telle heure, cette heure soit affichée et qu'au moment ou l'heure passe dans la minute suivante, l'heure affichée soit actualisée.

    Jusqu'à présent, tout ce que j'arrive à faire c'est d'afficher l'heure au moment ou l'applic est lancée et cette heure reste tjs la meme....

    Comment puis-je faire cela ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Il faut utiliser un javax.swing.Timer pour exécuter une action toutes les x millisecondes, et dans lequel tu mettras à jour ton composant

    a++

  3. #3
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    Tout d'abors, merci pour la réponse.

    Ensuite, j'ai regardé cette classe mais je ne vois pas comment associer le listener au timer, voici ce que j'ai fait dans ma classe, mais rien ne se passe...

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    public class GUIManager extends JFrame implements ActionListener {
    	private JButton but1;
    	private JButton but2;
     
    	// Barre d'états
    	private JPanel m_barreEtat;
    	private JLabel m_barreEtatStatusLabel;
    	private Timer m_timer;
    	private DateTime m_date;
     
    	/**
             * Constructeur
             */
    	public GUIManager() {
    		m_date = new DateTime();
    		m_timer = new Timer(60000, this);
     
    		but1 = new JButton("Un");
    		but1.addActionListener(this);
    		but2 = new JButton("Deux");
    		but2.addActionListener(this);
     
    		// La frame
    		this.setContentPane(build());
    		this.setSize(new Dimension(GUIUtils.getDimensionFrame(this)));
    		GUIUtils.locateOnScreenCenter(this);
     
    		//this.setResizable(false);
    		this.setTitle("Manager");
    		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		this.addWindowListener(new WindowAdapter() {
    			@Override
    			public void windowClosing(WindowEvent evt) {
    				quit();
    			}
    		});
    	}
     
    	/**
             * Construit la frame
             * @return panel Le panel des sélections
             */
    	private Container build() {
    		// Barre d'état
    		m_barreEtat = new JPanel();
    		buildBarreEtat();
     
            CellConstraints cc = new CellConstraints();
            FormLayout layout = new FormLayout("fill:60dlu, 5dlu, fill:1dlu:grow", "30dlu, fill:50dlu:grow, 20dlu");
            DefaultFormBuilder builder = new DefaultFormBuilder(layout);
     
    		builder.add(but1, cc.xy(1, 1));
    		builder.add(but2, cc.xy(3, 1));
            builder.add(m_barreEtat, cc.xyw(1, 3, 3));
     
            return builder.getPanel();
    	}
     
    	/**
             * Consrtuit la barre d'états
             */
    	private void buildBarreEtat() {
    		m_barreEtatStatusLabel = new JLabel();
    		m_barreEtat.setBackground(Color.WHITE);
    		m_barreEtatStatusLabel.setText(m_date.toDate().toString());
     
    		m_barreEtat.add(m_barreEtatStatusLabel);
    	}
     
    	/**
             * Met à jour le texte dans la barre d'état
             */
    	private void setBarreEtatStatus() {
    		m_barreEtatStatusLabel.setText(m_date.toDate().toString());
    	}
     
    	/**
             * Permet de quitter l'application
             * @return Si la fenêtre doit être fermée ou pas
             */
    	private boolean quit() {
    		dispose();
    		return true;
    	}
     
    	/* (non-Javadoc)
    	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
    	 */
    	public void actionPerformed(ActionEvent e) {
    		if (e.getSource == but1) {
    			system.out.println("Bouton 1");
    		} else if (e.getSource == but2) {
    			system.out.println("Bouton 2");
    		} else { // Si ce n'est pas un bouton, c'ets le timer
    			// Lorsque le timer est au bout
    			setBarreEtatStatus();
    			invalidate();
    			repaint();
    		}
    	}
    }
    Mais là je vois pas trop quoi faire...

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu as juste oublié de démarrer le timer :
    a++

  5. #5
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    ha oui, merci

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

Discussions similaires

  1. afficher l'heure
    Par ghislain118 dans le forum C
    Réponses: 2
    Dernier message: 03/12/2005, 18h26
  2. Afficher des heures locales
    Par mrpowerboy dans le forum Applets
    Réponses: 3
    Dernier message: 27/09/2005, 17h57
  3. afficher l'heure toutes les minutes
    Par rvfranck dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/02/2005, 14h12

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