home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / Internet / Java / ui / drawing / example / FlashingGraphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  1978-03-06  |  2.3 KB  |  135 lines

  1. import java.applet.Applet;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.awt.Event;
  5. import java.awt.Graphics;
  6.  
  7. public class FlashingGraphics extends Applet implements Runnable {
  8.    int frameNumber = -1;
  9.    int delay;
  10.    Thread animatorThread;
  11.    boolean frozen = false;
  12.    int squareSize = 20;
  13.    boolean fillColumnTop = true;
  14.  
  15.    public void init() {
  16.       int var2 = 10;
  17.       String var1 = ((Applet)this).getParameter("fps");
  18.  
  19.       try {
  20.          if (var1 != null) {
  21.             var2 = Integer.parseInt(var1);
  22.          }
  23.       } catch (Exception var4) {
  24.       }
  25.  
  26.       this.delay = var2 > 0 ? 1000 / var2 : 100;
  27.       var1 = ((Applet)this).getParameter("squareWidth");
  28.  
  29.       try {
  30.          if (var1 != null) {
  31.             this.squareSize = Integer.parseInt(var1);
  32.             return;
  33.          }
  34.       } catch (Exception var3) {
  35.       }
  36.  
  37.    }
  38.  
  39.    public void start() {
  40.       if (!this.frozen) {
  41.          if (this.animatorThread == null) {
  42.             this.animatorThread = new Thread(this);
  43.          }
  44.  
  45.          this.animatorThread.start();
  46.       }
  47.  
  48.    }
  49.  
  50.    public void stop() {
  51.       this.animatorThread = null;
  52.    }
  53.  
  54.    public boolean mouseDown(Event var1, int var2, int var3) {
  55.       if (this.frozen) {
  56.          this.frozen = false;
  57.          this.start();
  58.       } else {
  59.          this.frozen = true;
  60.          this.stop();
  61.       }
  62.  
  63.       return true;
  64.    }
  65.  
  66.    public void run() {
  67.       Thread.currentThread().setPriority(1);
  68.       long var1 = System.currentTimeMillis();
  69.  
  70.       while(Thread.currentThread() == this.animatorThread) {
  71.          ++this.frameNumber;
  72.          ((Component)this).repaint();
  73.  
  74.          try {
  75.             var1 += (long)this.delay;
  76.             Thread.sleep(Math.max(0L, var1 - System.currentTimeMillis()));
  77.          } catch (InterruptedException var3) {
  78.             return;
  79.          }
  80.       }
  81.  
  82.    }
  83.  
  84.    public void paint(Graphics var1) {
  85.       Dimension var2 = ((Component)this).size();
  86.       int var5 = 0;
  87.       int var6 = 0;
  88.       int var7 = 0;
  89.       boolean var3 = this.fillColumnTop;
  90.       this.fillColumnTop = !this.fillColumnTop;
  91.       int var10 = this.frameNumber % this.squareSize;
  92.       boolean var4;
  93.       int var8;
  94.       if (var10 == 0) {
  95.          var8 = this.squareSize;
  96.          var4 = !var3;
  97.       } else {
  98.          var8 = var10;
  99.          var4 = var3;
  100.       }
  101.  
  102.       while(var6 < var2.width) {
  103.          int var9;
  104.          for(int var11 = 0; var7 < var2.height; var7 += var9) {
  105.             var11 += this.squareSize;
  106.             if (var11 > var2.height) {
  107.                var9 = var2.height - var7;
  108.             } else {
  109.                var9 = this.squareSize;
  110.             }
  111.  
  112.             if (var3) {
  113.                var1.fillRect(var6, var7, var8, var9);
  114.                var3 = false;
  115.             } else {
  116.                var3 = true;
  117.             }
  118.          }
  119.  
  120.          var6 += var8;
  121.          var7 = 0;
  122.          var8 = this.squareSize;
  123.          var5 += var8;
  124.          if (var5 > var2.width) {
  125.             var8 = var2.width - var6;
  126.          }
  127.  
  128.          var3 = this.fillColumnTop;
  129.          this.fillColumnTop = !this.fillColumnTop;
  130.       }
  131.  
  132.       this.fillColumnTop = var4;
  133.    }
  134. }
  135.