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

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