home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2001 July / PCWJUL01.iso / system / Photo.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-05-23  |  2.6 KB  |  93 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.Graphics;
  6. import java.awt.Image;
  7.  
  8. public class Photo extends Applet implements Runnable {
  9.    // $FF: renamed from: d java.awt.Dimension
  10.    Dimension field_0;
  11.    // $FF: renamed from: ii java.awt.Image
  12.    Image field_1;
  13.    Thread thethread;
  14.    final int numpos = 64;
  15.    int pos;
  16.    boolean dir;
  17.    int iheight = -1;
  18.    int iwidth = -1;
  19.  
  20.    public String getAppletInfo() {
  21.       return "Image morpher - by Brian Postma";
  22.    }
  23.  
  24.    public void init() {
  25.       this.field_0 = ((Component)this).size();
  26.       Graphics var2 = ((Component)this).getGraphics();
  27.       this.field_1 = ((Applet)this).getImage(((Applet)this).getDocumentBase(), ((Applet)this).getParameter("Image"));
  28.    }
  29.  
  30.    public void paint(Graphics var1) {
  31.       if (this.iwidth <= 0 || this.iheight <= 0) {
  32.          var1.drawImage(this.field_1, 0, 0, this);
  33.  
  34.          while(this.iwidth == -1 || this.iheight == -1) {
  35.             this.iwidth = this.field_1.getWidth(this);
  36.             this.iheight = this.field_1.getHeight(this);
  37.          }
  38.       }
  39.  
  40.       int var4 = this.iheight / 2;
  41.       int var2 = (int)((double)this.iheight * Math.sin((double)this.pos * 3.1415926535 / (double)64.0F));
  42.       int var3 = var2 / 2;
  43.       if (this.dir) {
  44.          var1.drawImage(this.field_1, 0, var4 - var3, this.iwidth, var4 + var3, 0, this.iheight, this.iwidth, 0, this);
  45.       } else {
  46.          var1.drawImage(this.field_1, 0, (this.iheight - var2) / 2, this.iwidth, var2, this);
  47.       }
  48.  
  49.       var1.setColor(Color.black);
  50.       var1.fillRect(0, var4 - var3 - 6, this.iwidth, 5);
  51.       var1.fillRect(0, var4 + var3, this.iwidth, 5);
  52.       this.pos = (this.pos + 1) % 64;
  53.       if (this.pos == 0) {
  54.          this.dir ^= true;
  55.       }
  56.  
  57.    }
  58.  
  59.    public void run() {
  60.       Thread.currentThread().setPriority(10);
  61.       Graphics var3 = ((Component)this).getGraphics();
  62.       ((Component)this).setBackground(Color.black);
  63.  
  64.       while(true) {
  65.          long var1 = System.currentTimeMillis();
  66.  
  67.          try {
  68.             this.paint(var3);
  69.             var1 += 20L;
  70.             Thread.sleep(Math.max(0L, var1 - System.currentTimeMillis()));
  71.          } catch (InterruptedException var4) {
  72.             return;
  73.          }
  74.       }
  75.    }
  76.  
  77.    public void start() {
  78.       if (this.thethread == null) {
  79.          this.thethread = new Thread(this);
  80.          this.thethread.start();
  81.       }
  82.  
  83.    }
  84.  
  85.    public void stop() {
  86.       if (this.thethread != null) {
  87.          this.thethread.stop();
  88.          this.thethread = null;
  89.       }
  90.  
  91.    }
  92. }
  93.