home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.util.Date;
-
- public class NeXTClock extends Applet implements Runnable {
- Thread clockThread;
- Font dateFont;
- Font dayFont;
- Font timeFont;
- Font monthFont;
- Image baseImg;
- int size = 5;
- int italic = 1;
- Date now;
- Color darkGreen;
- int blink;
- int last_min = -1;
- String[] weekday = new String[]{"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
- String[] month = new String[]{"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
-
- public void init() {
- this.baseImg = ((Applet)this).getImage(((Applet)this).getCodeBase(), "default.gif");
- this.timeFont = new Font("TimesRoman", 1, 16);
- this.dayFont = new Font("Helvetica", 0, 6);
- this.dateFont = new Font("TimesRoman", 1, 18);
- this.monthFont = new Font("Helvetica", 2, 8);
- this.darkGreen = new Color(0, 200, 0);
- }
-
- int doItalic(int var1, int var2) {
- return this.italic == 1 ? (int)((double)var1 - (double)var2 * 0.2) : var1;
- }
-
- void drawSegment(Graphics var1, int var2, int var3, int var4) {
- int[] var5 = new int[]{0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 0, 2, 0, 2, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1};
- var1.drawLine(this.doItalic(var2 + var5[var4 * 4] * this.size, var5[var4 * 4 + 1] * this.size), var3 + var5[var4 * 4 + 1] * this.size, this.doItalic(var2 + var5[var4 * 4 + 2] * this.size, var5[var4 * 4 + 3] * this.size), var3 + var5[var4 * 4 + 3] * this.size);
- }
-
- void drawDigit(Graphics var1, int var2, int var3, int var4) {
- int[] var5 = new int[]{63, 6, 91, 79, 102, 109, 125, 7, 127, 111};
-
- for(int var6 = 0; var6 < 7; ++var6) {
- if ((var5[var2] & 1 << var6) != 0) {
- this.drawSegment(var1, var3, var4, var6);
- }
- }
-
- }
-
- void drawDigitString(Graphics var1, String var2, int var3, int var4) {
- for(int var5 = 0; var5 < var2.length(); ++var5) {
- char var6 = var2.charAt(var5);
- if (var6 >= '0' && var6 <= '9') {
- this.drawDigit(var1, var6 - 48, var3 += (int)((double)this.size * 1.8), var4);
- } else {
- var3 += (int)((double)this.size * 0.8);
- }
- }
-
- }
-
- void drawBlink(Graphics var1) {
- if (this.blink == 0) {
- var1.setColor(this.darkGreen);
- this.blink = 1;
- } else {
- var1.setColor(Color.black);
- this.blink = 0;
- }
-
- var1.drawLine(30, 9, 30, 10);
- var1.drawLine(29, 12, 29, 13);
- }
-
- void drawTime(Graphics var1) {
- ((Component)this).getFontMetrics(this.timeFont);
- String var2 = "" + this.now.getHours() / 10 + this.now.getHours() % 10 + ":" + "" + this.now.getMinutes() / 10 + this.now.getMinutes() % 10;
- var1.setFont(this.timeFont);
- var1.setColor(this.darkGreen);
- this.drawDigitString(var1, var2, 4, 6);
- }
-
- void drawDate(Graphics var1) {
- var1.setColor(Color.black);
- FontMetrics var2 = ((Component)this).getFontMetrics(this.dayFont);
- String var3 = this.weekday[this.now.getDay()];
- var1.setFont(this.dayFont);
- var1.drawString(var3, (((Component)this).size().width - var2.stringWidth(var3)) / 2 - 2, 31);
- var2 = ((Component)this).getFontMetrics(this.dateFont);
- var3 = "" + this.now.getDate();
- var1.setFont(this.dateFont);
- var1.drawString(var3, (((Component)this).size().width - var2.stringWidth(var3)) / 2 - 2, 46);
- var2 = ((Component)this).getFontMetrics(this.monthFont);
- var3 = this.month[this.now.getMonth()];
- var1.setFont(this.monthFont);
- var1.drawString(var3, (((Component)this).size().width - var2.stringWidth(var3)) / 2 - 2, 54);
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
-
- public void paint(Graphics var1) {
- var1.drawImage(this.baseImg, 0, 0, this);
- this.drawDate(var1);
- this.drawTime(var1);
- }
-
- public void start() {
- if (this.clockThread == null) {
- this.clockThread = new Thread(this, "Clock");
- this.clockThread.start();
- }
-
- }
-
- public void run() {
- while(this.clockThread != null) {
- this.now = new Date();
- if (this.last_min != this.now.getMinutes()) {
- this.last_min = this.now.getMinutes();
- ((Component)this).getGraphics().drawImage(this.baseImg, 0, 0, this);
- this.drawDate(((Component)this).getGraphics());
- this.drawTime(((Component)this).getGraphics());
- }
-
- this.drawBlink(((Component)this).getGraphics());
- ((Component)this).getToolkit().sync();
- this.pause(1000);
- }
-
- }
-
- public void pause(int var1) {
- try {
- Thread.sleep((long)var1);
- } catch (InterruptedException var2) {
- }
- }
-
- public void stop() {
- this.clockThread.stop();
- this.clockThread = null;
- }
- }
-