Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Java (http://www.go4expert.com/articles/java-tutorials/)
-   -   Java digital clock (http://www.go4expert.com/articles/java-digital-clock-t15667/)

Systemerror 30Dec2008 03:20

Java digital clock
 
This is a basic digital clock in Java that works off your operating system time, it works in a multithreaded environment and have coded it to put my own background in.

Code: Java

import java.awt.*;
import javax.swing.*;       
import java.util.*;

class Clock extends JFrame implements Runnable
{
  Thread runner; //declare global objects
  Font clockFont;
 
     public Clock()
     {
       super("Java clock");
       setSize( 350, 100);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setVisible(true);
       setResizable(false);                             //create window
   
       clockFont = new Font("Serif", Font.BOLD, 40);    //create font instance
       
       Container contentArea = getContentPane();
       ClockPanel timeDisplay = new ClockPanel();

 
       contentArea.add(timeDisplay);                    //add components
       setContentPane(contentArea);
       start();                                         //start thread running
     
     }
     
     
     class ClockPanel extends JPanel
     {
      public void paintComponent(Graphics painter )
        {
        Image pic =
          Toolkit.getDefaultToolkit().getImage("background.jpg");
         
         if(pic != null)
           
            painter.drawImage(pic, 0, 0, this);     //create image
     
                 
//if I didn't use a background image I would have used the setColor and fillRect methods to set background
     
          painter.setFont(clockFont);                   //create clock components
          painter.setColor(Color.black);
          painter.drawString( timeNow(), 60, 40);
         
   
        }
     }

     
     //get current time
     public String timeNow()
     {
       Calendar now = Calendar.getInstance();
       int hrs = now.get(Calendar.HOUR_OF_DAY);
       int min = now.get(Calendar.MINUTE);
       int sec = now.get(Calendar.SECOND);
       
       String time = zero(hrs)+":"+zero(min)+":"+zero(sec);
       
       return time;
     }


     
     public String zero(int num)
     {
       String number=( num < 10) ? ("0"+num) : (""+num);
       return number;                                    //Add leading zero if needed
       
     }
     
     
     public void start()
     {
       if(runner == null) runner = new Thread(this);
       runner.start();
                                                             //method to start thread
     }


     public void run()
     {
       while (runner == Thread.currentThread() )
       {
        repaint();
                                                         //define thread task
           try
             {
               Thread.sleep(1000);
             }
              catch(InterruptedException e)
                  {
                    System.out.println("Thread failed");
                  }
                 
       }
     }
     
     //create main method
     public static void main(String [] args)
     {
       Clock eg = new Clock();
     }
}


skp819 30Dec2008 11:40

Re: Java digital clock
 
good post thanks for sharing it....

hanleyhansen 31Dec2008 00:29

Re: Java digital clock
 
Nice looking forward to playing around with it.

shabbir 6Jan2009 12:24

Re: Java digital clock
 
Nomination for article of the month for December 2008 Started.

shabbir 19Jan2009 09:39

Re: Java digital clock
 
Its among the Article of the month and votes can make it win, so start Voting for article of the month for December 2008

akash2008 20Jan2009 23:28

Re: Java digital clock
 
that works off your operating system time, it works in a multithreaded environment and have coded it to put my own

rkudoz 30Jan2010 16:22

Re: Java digital clock
 
Thanks for sharing... atleast we can play with it as well....:)

Nice Share BTW! :D)


All times are GMT +5.5. The time now is 07:20.