Demo1
clock
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
class Clock extends JFrame implements ActionListener {
int x, y, x0, y0, r, h, olds_x, olds_y, oldm_x, oldm_y, oldh_x, oldh_y, ss, mm, hh, old_m, old_h, ang;
final double RAD = Math.PI / 180;
public Clock() {
super("Clock by kikiwawa");
setDefaultCloseOperation(3);
setSize(300, 300);
// setBackground(Color.BLACK);
setLocation(300, 150); //窗体大小
setResizable(false); //设置不可缩放
setVisible(true);
int delay = 1000; // 窗口刷新频率
ActionListener drawClock = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
repaint();
}
};
new Timer(delay, drawClock).start();
}
public void actionPerformed(ActionEvent e) {
}
public void paint(Graphics g) {
Graphics2D g2D = (Graphics2D) g;
Insets insets = getInsets();
int L = insets.left / 2, T = insets.top / 2;
// h = getSize().height;
// g.setColor(Color.white);
// g2D.setStroke(new BasicStroke(4.0f));
// g.drawOval(L + 40, T + 40, h - 80, h - 80);
// r = h / 2 - 40;
// x0 = 40 + r - 5 + L;
// y0 = 40 + r - 5 - T;
// ang = 60;
//
// for (int i = 1; i <= 12; i++) {
// x = (int) ((r + 10) * Math.cos(RAD * ang) + x0);
// y = (int) ((r + 10) * Math.sin(RAD * ang) + y0);
// g.drawString("" + i, x, h - y);
// ang -= 30;
// }
Calendar now = new GregorianCalendar();
int nowh = now.get(Calendar.HOUR_OF_DAY);
int nowm = now.get(Calendar.MINUTE);
int nows = now.get(Calendar.SECOND);
String st;
if (nowh < 10)
st = "0" + nowh;
else
st = "" + nowh;
if (nowm < 10)
st += ":0" + nowm;
else
st += ":" + nowm;
if (nows < 10)
st += ":0" + nows;
else
st += ":" + nows;
g.setColor(Color.pink); //数字时钟的底色
g.fillRect(L, T, 50, 28); //数字时钟的底色大小
g.setColor(Color.blue); //数字时钟
g.drawString(st, L + 2, T + 26); //数字时钟的显示位置
// ss = 90 - nows * 6;
// mm = 90 - nowm * 6;
// hh = 90 - nowh * 30 - nowm / 2;
// x0 = r + 40 + L;
// y0 = r + 40 + T;
//
// if (olds_x > 0) {
// g.setColor(getBackground());
// g.drawLine(x0, y0, olds_x, h - olds_y);
// } else {
// old_m = mm;
// old_h = hh;
// }
// x = (int) (r * 0.9 * Math.cos(RAD * ss)) + x0;
// y = (int) (r * 0.9 * Math.sin(RAD * ss)) + y0 - 2 * T;
// g.setColor(Color.yellow);
// g.drawLine(x0, y0, x, h - y);
// olds_x = x;
// olds_y = y;
// g2D.setStroke(new BasicStroke(2.2f));
//
// if (old_m != mm) {
// g.setColor(getBackground());
// g.drawLine(x0, y0, oldm_x, h - oldm_y);
// }
//
// x = (int) (r * 0.7 * Math.cos(RAD * mm)) + x0;
// y = (int) (r * 0.7 * Math.sin(RAD * mm)) + y0 - 2 * T;
// g.setColor(Color.green);
// g.drawLine(x0, y0, x, h - y);
// oldm_x = x;
// oldm_y = y;
// old_m = mm;
// g2D.setStroke(new BasicStroke(3.4f));
//
// if (old_h != hh) {
// g.setColor(getBackground());
// g.drawLine(x0, y0, oldh_x, h - oldh_y);
// }
//
// x = (int) (r * 0.5 * Math.cos(RAD * hh)) + x0;
// y = (int) (r * 0.5 * Math.sin(RAD * hh)) + y0 - 2 * T;
// g.setColor(Color.red);
// g.drawLine(x0, y0, x, h - y);
// oldh_x = x;
// oldh_y = y;
// old_h = hh;
}
public static void main(String[] args) {
Clock c = new Clock();
}
}
Demo2
clockDemo
package clockdemo;
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.text.*;
public class ClockDemo extends Applet implements Runnable {
Thread timer;
int lastxs, lastys, lastxm, lastym, lastxh, lastyh;
SimpleDateFormat fm;
String lastdate;
Font clockFaceFont;
Date currentDate;
Color handColor;
Color numberColor;
public void init() {
int x, y;
lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;
fm = new SimpleDateFormat("yyyy EEE MMM dd hh:mm:ss");
currentDate = new Date();
lastdate = fm.format(currentDate);
clockFaceFont = new Font("Serif", Font.PLAIN, 14);
handColor = Color.blue;
numberColor = Color.darkGray;
try {
setBackground(new Color(Integer.parseInt(getParameter("bgcolor"), 16)));
} catch (Exception E) {
}
try {
handColor = new Color(Integer.parseInt(getParameter("fgcolor1"), 16));
} catch (Exception E) {
}
try {
numberColor = new Color(Integer.parseInt(getParameter("fgcolor1"), 16));
} catch (Exception E) {
}
resize(200, 200);
}
public void plotpoints(int x0, int y0, int x, int y, Graphics g) {
g.drawLine(x0 + x, y0 + y, x0 + x, y0 + y);
g.drawLine(x0 + y, y0 + x, x0 + y, y0 + x);
g.drawLine(x0 + y, y0 - x, x0 + y, y0 - x);
g.drawLine(x0 + x, y0 - y, x0 + x, y0 - y);
g.drawLine(x0 - x, y0 - y, x0 - x, y0 - y);
g.drawLine(x0 - y, y0 - x, x0 - y, y0 - x);
g.drawLine(x0 - y, y0 + x, x0 - y, y0 + x);
g.drawLine(x0 - x, y0 + y, x0 - x, y0 + y);
}
public void circle(int x0, int y0, int r, Graphics g) {
int x, y;
float d;
x = 0;
y = r;
d = 5 / 4 - r;
plotpoints(x0, y0, x, y, g);
while (y > x) {
if (d < 0) {
d = d + 2 * x + 3;
x++;
} else {
d = d + 2 * (x - y) + 5;
x++;
y--;
}
plotpoints(x0, y0, x, y, g);
}
}
public void paint(Graphics g) {
int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter;
String today;
currentDate = new Date();
SimpleDateFormat fm = new SimpleDateFormat("s", Locale.getDefault());
try {
s = Integer.parseInt(fm.format(currentDate));
} catch (NumberFormatException n) {
s = 0;
}
fm.applyPattern("m");
try {
m = Integer.parseInt(fm.format(currentDate));
} catch (NumberFormatException n) {
m = 10;
}
fm.applyPattern("h");
try {
h = Integer.parseInt(fm.format(currentDate));
} catch (NumberFormatException n) {
h = 10;
}
fm.applyPattern("EEE MMM dd HH:mm:ss yyyy");
today = fm.format(currentDate);
xcenter = 80;
ycenter = 55;
xs = (int) (Math.cos(s * 3.14f / 30 - 3.14 / 2) * 45 + xcenter);
ys = (int) (Math.sin(s * 3.14f / 30 - 3.14 / 2) * 45 + ycenter);
xm = (int) (Math.cos(m * 3.14f / 30 - 3.14 / 2) * 40 + xcenter);
ym = (int) (Math.sin(m * 3.14f / 30 - 3.14 / 2) * 40 + ycenter);
xh = (int) (Math.cos((h * 30 + m / 2) * 3.14f / 180 - 3.14f / 2) * 30 + xcenter);
yh = (int) (Math.sin((h * 30 + m / 2) * 3.14f / 180 - 3.14f / 2) * 30 + ycenter);
g.setFont(clockFaceFont);
g.setColor(handColor);
circle(xcenter, ycenter, 50, g);
g.setColor(numberColor);
g.drawString("9", xcenter - 45, ycenter + 3);
g.drawString("3", xcenter + 40, ycenter + 3);
g.drawString("12", xcenter - 5, ycenter - 37);
g.drawString("6", xcenter - 3, ycenter + 45);
g.setColor(getBackground());
if (xs != lastxs || ys != lastys) {
g.drawLine(xcenter, ycenter, lastxs, lastys);
g.drawString(lastdate, 5, 125);
}
if (xm != lastxm || ym != lastym) {
g.drawLine(xcenter, ycenter - 1, lastxm, lastym);
g.drawLine(xcenter - 1, ycenter, lastxm, lastym);
}
if (xh != lastxh || yh != lastyh) {
g.drawLine(xcenter, ycenter - 1, lastxh, lastyh);
g.drawLine(xcenter - 1, ycenter, lastxh, lastyh);
}
g.setColor(numberColor);
g.drawString("", 5, 125);
g.drawString(today, 5, 125);
g.drawLine(xcenter, ycenter, xs, ys);
g.setColor(handColor);
g.drawLine(xcenter, ycenter - 1, xm, ym);
g.drawLine(xcenter, ycenter, xm, ym);
g.drawLine(xcenter, ycenter - 1, xh, yh);
g.drawLine(xcenter - 1, ycenter, xh, yh);
lastxs = xs;
lastys = ys;
lastxm = xm;
lastym = ym;
lastxh = xh;
lastyh = yh;
lastdate = today;
currentDate = null;
}
public void start() {
timer = new Thread(this);
timer.start();
}
public void stop() {
timer = null;
}
public void run() {
Thread me = Thread.currentThread();
while (timer == me) {
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
}
repaint();
}
}
public void update(Graphics g) {
paint(g);
}
}