home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / CLOCK2.EXE / Clock2.class (.txt) next >
Encoding:
Java Class File  |  1997-09-04  |  4.8 KB  |  202 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Font;
  5. import java.awt.Graphics;
  6. import java.text.DateFormat;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.Locale;
  10.  
  11. public class Clock2 extends Applet implements Runnable {
  12.    Thread timer;
  13.    int lastxs;
  14.    int lastys;
  15.    int lastxm;
  16.    int lastym;
  17.    int lastxh;
  18.    int lastyh;
  19.    SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd hh:mm:ss yyyy", Locale.getDefault());
  20.    Date dummy = new Date();
  21.    String lastdate;
  22.    // $FF: renamed from: F java.awt.Font
  23.    Font field_0;
  24.    Date dat;
  25.    Color fgcol;
  26.    Color fgcol2;
  27.  
  28.    public void init() {
  29.       try {
  30.          ((Component)this).setBackground(new Color(Integer.parseInt(((Applet)this).getParameter("bgcolor"), 16)));
  31.       } catch (Exception var3) {
  32.       }
  33.  
  34.       try {
  35.          this.fgcol = new Color(Integer.parseInt(((Applet)this).getParameter("fgcolor1"), 16));
  36.       } catch (Exception var2) {
  37.       }
  38.  
  39.       try {
  40.          this.fgcol2 = new Color(Integer.parseInt(((Applet)this).getParameter("fgcolor2"), 16));
  41.       } catch (Exception var1) {
  42.       }
  43.  
  44.       ((Applet)this).resize(300, 300);
  45.    }
  46.  
  47.    public void plotpoints(int var1, int var2, int var3, int var4, Graphics var5) {
  48.       var5.drawLine(var1 + var3, var2 + var4, var1 + var3, var2 + var4);
  49.       var5.drawLine(var1 + var4, var2 + var3, var1 + var4, var2 + var3);
  50.       var5.drawLine(var1 + var4, var2 - var3, var1 + var4, var2 - var3);
  51.       var5.drawLine(var1 + var3, var2 - var4, var1 + var3, var2 - var4);
  52.       var5.drawLine(var1 - var3, var2 - var4, var1 - var3, var2 - var4);
  53.       var5.drawLine(var1 - var4, var2 - var3, var1 - var4, var2 - var3);
  54.       var5.drawLine(var1 - var4, var2 + var3, var1 - var4, var2 + var3);
  55.       var5.drawLine(var1 - var3, var2 + var4, var1 - var3, var2 + var4);
  56.    }
  57.  
  58.    public void circle(int var1, int var2, int var3, Graphics var4) {
  59.       int var5 = 0;
  60.       int var6 = var3;
  61.       float var7 = (float)(1 - var3);
  62.       this.plotpoints(var1, var2, var5, var3, var4);
  63.  
  64.       for(; var6 > var5; this.plotpoints(var1, var2, var5, var6, var4)) {
  65.          if (var7 < 0.0F) {
  66.             var7 = var7 + (float)(2 * var5) + 3.0F;
  67.             ++var5;
  68.          } else {
  69.             var7 = var7 + (float)(2 * (var5 - var6)) + 5.0F;
  70.             ++var5;
  71.             --var6;
  72.          }
  73.       }
  74.  
  75.    }
  76.  
  77.    public void paint(Graphics var1) {
  78.       int var8 = 0;
  79.       int var9 = 10;
  80.       int var10 = 10;
  81.       this.dat = new Date();
  82.       SimpleDateFormat var14 = new SimpleDateFormat("s", Locale.getDefault());
  83.  
  84.       try {
  85.          var8 = Integer.parseInt(((DateFormat)var14).format(this.dat));
  86.       } catch (NumberFormatException var17) {
  87.          var8 = 0;
  88.       }
  89.  
  90.       var14.applyPattern("m");
  91.  
  92.       try {
  93.          var9 = Integer.parseInt(((DateFormat)var14).format(this.dat));
  94.       } catch (NumberFormatException var16) {
  95.          var9 = 10;
  96.       }
  97.  
  98.       var14.applyPattern("h");
  99.  
  100.       try {
  101.          var10 = Integer.parseInt(((DateFormat)var14).format(this.dat));
  102.       } catch (NumberFormatException var15) {
  103.          var10 = 10;
  104.       }
  105.  
  106.       var14.applyPattern("EEE MMM dd HH:mm:ss yyyy");
  107.       String var13 = ((DateFormat)var14).format(this.dat);
  108.       byte var11 = 80;
  109.       byte var12 = 55;
  110.       int var6 = (int)(Math.cos((double)((float)var8 * 3.14F / 30.0F - 1.57F)) * (double)45.0F + (double)var11);
  111.       int var7 = (int)(Math.sin((double)((float)var8 * 3.14F / 30.0F - 1.57F)) * (double)45.0F + (double)var12);
  112.       int var4 = (int)(Math.cos((double)((float)var9 * 3.14F / 30.0F - 1.57F)) * (double)40.0F + (double)var11);
  113.       int var5 = (int)(Math.sin((double)((float)var9 * 3.14F / 30.0F - 1.57F)) * (double)40.0F + (double)var12);
  114.       int var2 = (int)(Math.cos((double)((float)(var10 * 30 + var9 / 2) * 3.14F / 180.0F - 1.57F)) * (double)30.0F + (double)var11);
  115.       int var3 = (int)(Math.sin((double)((float)(var10 * 30 + var9 / 2) * 3.14F / 180.0F - 1.57F)) * (double)30.0F + (double)var12);
  116.       var1.setFont(this.field_0);
  117.       var1.setColor(this.fgcol);
  118.       this.circle(var11, var12, 50, var1);
  119.       var1.setColor(this.fgcol2);
  120.       var1.drawString("9", var11 - 45, var12 + 3);
  121.       var1.drawString("3", var11 + 40, var12 + 3);
  122.       var1.drawString("12", var11 - 5, var12 - 37);
  123.       var1.drawString("6", var11 - 3, var12 + 45);
  124.       var1.setColor(((Component)this).getBackground());
  125.       if (var6 != this.lastxs || var7 != this.lastys) {
  126.          var1.drawLine(var11, var12, this.lastxs, this.lastys);
  127.          var1.drawString(this.lastdate, 5, 125);
  128.       }
  129.  
  130.       if (var4 != this.lastxm || var5 != this.lastym) {
  131.          var1.drawLine(var11, var12 - 1, this.lastxm, this.lastym);
  132.          var1.drawLine(var11 - 1, var12, this.lastxm, this.lastym);
  133.       }
  134.  
  135.       if (var2 != this.lastxh || var3 != this.lastyh) {
  136.          var1.drawLine(var11, var12 - 1, this.lastxh, this.lastyh);
  137.          var1.drawLine(var11 - 1, var12, this.lastxh, this.lastyh);
  138.       }
  139.  
  140.       var1.setColor(this.fgcol2);
  141.       var1.drawString("", 5, 125);
  142.       var1.drawString(var13, 5, 125);
  143.       var1.drawLine(var11, var12, var6, var7);
  144.       var1.setColor(this.fgcol);
  145.       var1.drawLine(var11, var12 - 1, var4, var5);
  146.       var1.drawLine(var11 - 1, var12, var4, var5);
  147.       var1.drawLine(var11, var12 - 1, var2, var3);
  148.       var1.drawLine(var11 - 1, var12, var2, var3);
  149.       this.lastxs = var6;
  150.       this.lastys = var7;
  151.       this.lastxm = var4;
  152.       this.lastym = var5;
  153.       this.lastxh = var2;
  154.       this.lastyh = var3;
  155.       this.lastdate = var13;
  156.       this.dat = null;
  157.    }
  158.  
  159.    public void start() {
  160.       if (this.timer == null) {
  161.          this.timer = new Thread(this);
  162.          this.timer.start();
  163.       }
  164.  
  165.    }
  166.  
  167.    public void stop() {
  168.       this.timer = null;
  169.    }
  170.  
  171.    public void run() {
  172.       for(; this.timer != null; ((Component)this).repaint()) {
  173.          try {
  174.             Thread.sleep(100L);
  175.          } catch (InterruptedException var1) {
  176.          }
  177.       }
  178.  
  179.       this.timer = null;
  180.    }
  181.  
  182.    public void update(Graphics var1) {
  183.       this.paint(var1);
  184.    }
  185.  
  186.    public String getAppletInfo() {
  187.       return "Title: A Clock \nAuthor: Rachel Gollub, 1995 \nAn analog clock.";
  188.    }
  189.  
  190.    public String[][] getParameterInfo() {
  191.       String[][] var1 = new String[][]{{"bgcolor", "hexadecimal RGB number", "The background color.  Default is the color of your browser."}, {"fgcolor1", "hexadecimal RGB number", "The color of the hands and dial.  Default is blue."}, {"fgcolor2", "hexadecimal RGB number", "The color of the seconds hand and numbers.  Default is dark gray."}};
  192.       return var1;
  193.    }
  194.  
  195.    public Clock2() {
  196.       this.lastdate = this.formatter.format(this.dummy);
  197.       this.field_0 = new Font("TimesRoman", 0, 14);
  198.       this.fgcol = Color.blue;
  199.       this.fgcol2 = Color.darkGray;
  200.    }
  201. }
  202.