Afficher la date et l’heure en temps réel dans un JLabel – AWT/Swing Java

Dans ce tutoriel nous allons découvrir comment afficher la date et l’heure en temps réel dans un JLabel en Java.


Vous souhaitez utiliser un JLabel pour afficher la date/heure en temps réel, pour cela nous allons utiliser la classe javax.swing.Timer qui définit un intervalle régulier pour mettre à jour l’étiquette et une instance DateFormat pour formater la valeur de la date. L’exemple suivant utilise un intervalle de temps d’une demi-seconde. Cela garantit que nous sommes toujours à jour.
 
 

Exemple:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.DateFormat;
import java.util.Date;

public class MyClock {

    public static void main(String[] args) {
        new MyClock();
    }

    public MyClock() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                  UIManager.
                     setLookAndFeel(
                      UIManager.getSystemLookAndFeelClassName()
                     );
                } catch (ClassNotFoundException ex) {
                } catch (InstantiationException ex) {
                } catch (IllegalAccessException ex) {
                } catch (UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Date/heure en temps réel");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new MyPanel());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class MyPanel extends JPanel 
    {
       private JLabel horloge;

       public MyPanel() {
         setLayout(new BorderLayout());
         horloge = new JLabel();
         horloge.setHorizontalAlignment(JLabel.CENTER);
         horloge.setFont(
           UIManager.getFont("Label.font").deriveFont(Font.BOLD, 50f)
         );
         horloge.setText(
           DateFormat.getDateTimeInstance().format(new Date())
         );
         add(horloge);

         Timer t = new Timer(500, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
              horloge.setText(
                 DateFormat.getDateTimeInstance().format(new Date())
              );
            }
         });
         t.setRepeats(true);
         t.setCoalesce(true);
         t.setInitialDelay(0);
         t.start();
       }
    }
}

Sortie:


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *