20-CS-694 Advanced Programming Techniques Spring 2012
Using repaint

Interfaces, Exceptions, Graphics, Animation, Threads, Reflection, Networking, RMI, JDBC, JNI

     Previous      Next      Applet Source      All lectures

Repainting

Simple animation - overlaying picture frames. Uses repaint to invoke paint.

import java.awt.*;
import java.applet.*;

public class Checkers extends Applet implements Runnable {
   Thread runner;
   int xpos;

   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() {
      setBackground(Color.blue);
      while (true) {
         for (xpos=5 ; xpos <=105; xpos+=4) {
            repaint();
            try { runner.sleep(50); } catch (InterruptedException e) {}
         }
         for (xpos=105 ; xpos > 5; xpos -= 4) {
            repaint();
            try { runner.sleep(50); }  catch (InterruptedException e) {}
         }
      }
   }

   public void paint(Graphics g) {
      g.setColor(Color.black);
      g.fillRect(0,0,100,100);
      g.setColor(Color.white);
      g.fillRect(101,0,100,100);

      g.setColor(Color.red);
      g.fillOval(xpos,5,90,90);
   }
}