Tutorials : Java by Example : Section 4 :
Section Four Contents
Loops, Advanced Color Functions
Random Colors and Arrays
Digital Clocks, HTML Page Parameters

Functions and Arrays

Digital Clocks, HTML Page Parameters

Displaying a simple digital clock is not difficult. The following code demonstrates this. You need an offscreen image for flicker free animation though. with Date today=new Date(); we create an object (a variable) of the class Date. To access it, we have to import java.util.* With getSeconds() etc. we retrieve the seconds of the current time as an integer. This is transformed into a String and displayed. We redraw everything 10 times a second, to get the precise seconds jump.

//Sourcecode

import java.awt.*;
import java.applet.*;
//we need to import the util package for the time functions
import java.util.*;

public class Project18 extends Applet implements Runnable
{
      Thread runner;
      Image Buffer;
      Graphics gBuffer;

      public void init()
      {
            //create off-screen image we can draw to
            Buffer=createImage(size().width,size().height);
            gBuffer=Buffer.getGraphics();
      }

      public void start()
      {
            if (runner == null)
            {
                 runner = new Thread (this);
                 runner.start();
            }
      }

      public void stop()
      {
            if (runner != null)
            {
                 runner.stop();
                 runner = null;
            }
      }

      public void run()
      {
           while(true)
           {
                 //halt the thread for 100 ms here
                 try {runner.sleep(100);}
                 catch (Exception e) { }

                 repaint();
           }
      }

      public void update(Graphics g)
      {
           paint(g);
      }

      public void paint (Graphics g)
      {
          //create a new time object
          Date today=new Date();

          //get the seconds, minutes and hours
          int sec=today.getSeconds();
          int min=today.getMinutes();
          int hour=today.getHours();

          String secStr, minStr, hourStr;

          //copy the time integers to our string objects
          //if values are less than 10 we add a 0
          if(hour<10)
                        hourStr="0"+hour;
          else
                        hourStr=""+hour;

          if(min<10)
                        minStr="0"+min;
          else
                        minStr=""+min;

          if(sec<10)
                        secStr="0"+sec;
          else
                        secStr=""+sec;

          //repaint the background black
          gBuffer.setColor(Color.black);
          gBuffer.fillRect(0,0,size().width,size().height);

          //set a new font we create "on the fly"
          gBuffer.setFont(new Font("Helvetica", Font.BOLD,65));
          gBuffer.setColor(Color.green);
          gBuffer.drawString(hourStr+":"+minStr+":"+secStr,20,73);

          //copy the buffer to the screen (no flickering!)
          g.drawImage (Buffer,0,0, this);
        }
}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.