package day01;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Clock {
public static void main
(String[] args
) {
// TODO Auto-generated method stub
JFrame frame
= new ClockFrame
();
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class ClockFrame
extends JFrame{
public ClockFrame(){
setTitle("java clock");
setBounds(100, 200, 600, 800);
setVisible(true);
ClockPanel cp = new ClockPanel();
add(cp);
}
}
class ClockPanel
extends JPanel{
int h;
int m;
int s;
int sx;
int sy;
int mx;
int my;
int hx;
int hy;
public ClockPanel() {
move();
for(int i=0;i<60;i++){
int r = 100;
if(i%5==0){
if(i%15==0){
r=120;
}else{
r=140;
}
}
int x1
= (int)(300+Math.
sin(Math.
toRadians(6*i
))*r
);
int y1
= (int)(300-Math.
cos(Math.
toRadians(i
*6))*r
);
int x2
= (int)(300+Math.
sin(Math.
toRadians(6*i
))*180);
int y2
= (int)(300-Math.
cos(Math.
toRadians(i
*6))*180);
}
}
super.paint(g);
setBackground
(Color.
LIGHT_GRAY);
g2.drawString(h + ":" + m + ":" + s, 20, 50);
g.
setColor(Color.
yellow);
g.drawLine(300,300,sx,sy);
g.drawLine(300,300,mx,my);
g.drawLine(300,300,hx,hy);
g.
setColor(Color.
orange);
g.drawOval(120,120,360,360);
g.drawOval(205,205,190,190);
g.fillOval(292, 292, 15, 15);
for(int i=0;i<60;i++){
int r = 100;
if(i%5==0){
if(i%15==0){
r=120;
}else{
r=140;
}
}
int x1
= (int)(300+Math.
sin(Math.
toRadians(6*i
))*r
);
int y1
= (int)(300-Math.
cos(Math.
toRadians(i
*6))*r
);
int x2
= (int)(300+Math.
sin(Math.
toRadians(6*i
))*180);
int y2
= (int)(300-Math.
cos(Math.
toRadians(i
*6))*180);
g.drawLine(x1,y1,x2,y2);
}
}
public void move() {
public void run() {
while (true) {
s
= Integer.
parseInt(ss.
format(d
));
m
= Integer.
parseInt(mm.
format(d
));
h
= Integer.
parseInt(hh.
format(d
));
sx
= (int) (300 + Math.
sin(Math.
toRadians(6 * s
)) * 150);
sy
= (int) (300 - Math.
cos(Math.
toRadians(6 * s
)) * 150);
mx
= (int) (300 + Math.
sin(Math.
toRadians(6 * m
)) * 120);
my
= (int) (300 - Math.
cos(Math.
toRadians(6 * m
)) * 120);
hx
= (int) (300 + Math.
sin(Math.
toRadians(h
* 30 + m
* 0.5)) * 90);
hy
= (int) (300 - Math.
cos(Math.
toRadians(h
* 30 + m
* 0.5)) * 90);
repaint();
try {
e.printStackTrace();
}
}
}
}.start();
}
}