Java Swing GUI

How to add real-time date and time in JFrame

In this tutorial, we are going to see how to add real-time date and time in JFrame in Java. You can use a JLabel to display date/time in real-time, for this we will use javax.swing.Timer class which defines a regular interval to update the label and DateFormat instance to format the date value. The following example uses a time interval of half a second. This ensures that we are always up-to-date.


 
 

How to add real-time date and time in JFrame
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("Real time date/time");
                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();
       }
    }
}

Output:


 
mcqMCQPractice competitive and technical Multiple Choice Questions and Answers (MCQs) with simple and logical explanations to prepare for tests and interviews.Read More

Leave a Reply

Your email address will not be published. Required fields are marked *