A member page of realapplets.com

Chapter 4 - Advanced Topics

2. Using Threads.

Threads are needed when you want to perfom actions over and over again.
We want to show the current time and update that every second.

import java.awt.*;
import java.applet.*;
// We need Date to get the current time.
import java.util.Date;

// Implement Runnable, this will make it possible for threads
// to call the run method when activated.
    public class ThreadExample extends Applet implements Runnable
         // Define your thread.
         Thread clockThread;
         // This textfield will show the time.
         TextField clockField;
         // Date will give us the current hours, minutes and seconds
         Date date;
         // This variable will remain true for as long
         // we want the thread to run.
         boolean running = true;

         public void init()
              // a standard layout to place just one textfield
              setLayout(new BorderLayout());
               clockField = new TextField();
              // Create the thread.
              clockThread= new Thread(this);
              // and let it start running

         // Very important. You do not want your thread to keep running when
         // the applet is deactivated (eg. user left page)
         public void destroy()
              // will cause thread to stop looping
              running = false;
              // destroy it.
              clockThread = null;

     // The method that will be called when you have a thread.
     // You always need this when you implement Runnable (use a thread)
     public void run()
          // loop until told to stop
          while (running)
               // Construct the current date.
               date = new Date();
               // Get the hours, minutes and hours
               String time = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
               // Put that result in the textfield
               //Now the reason for threads
                     // Wait 500milliseconds before continuing
               catch (InterruptedException e)
               // he has wait and will now restart his actions.

Be cautious when using threads, make sure to end them sometime and not to let them run too
fast. When threads are used to time on-screen drawing things could slow down


Home - Chapter 1 - Chapter2 - Chapter3 - Chapter4