'JAVA/JSP/Source'에 해당되는 글 36건
- 2008.07.14 아날로그 시계(AWT)
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class Clocklee extends Frame implements Runnable
{
int x,y,width,heigh,sx,sy,mx,my,hx,hy,centerX,centerY;
Clocklee()
{
setSize(250,250);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void paint(Graphics g)
{
// 현재 시간을 얻어온다.
Calendar cal = Calendar.getInstance();
int second = cal.get(Calendar.SECOND);
int minute = cal.get(Calendar.MINUTE);
int hour = cal.get(Calendar.HOUR);
x= 20; y=40; width=200; heigh = 200; // 원의 좌표와 크기
g.drawOval(x,y, width, heigh);
int r=100; // 반지름
centerX = x+width/2; //중심점
centerY = y+heigh/2;
///// 숫자를 그린다 /////
g.setFont(new Font("시스템",Font.BOLD,18));
g.setColor(Color.DARK_GRAY);
for(int i=1; i<=12; i++)
{
int strx = centerX + (int)((r-8)*Math.cos(Math.PI/2 - i*(Math.PI/6)));
int stry = centerY - (int)((r-8)*Math.sin(Math.PI/2 - i*(Math.PI/6)));
g.drawString(""+i,strx-5,stry+5);
}
///// 초침의 x,y좌표를 구하여 그린다 /////
sx = centerX + (int)((r-10)*Math.cos(Math.PI/2 - second*(Math.PI/30)));
sy = centerY - (int)((r-10)*Math.sin(Math.PI/2 - second*(Math.PI/30)));
g.setColor(Color.red);
g.drawLine(centerX,centerY, sx, sy);
///// 분침의 x,y좌표를 구하여 그린다 /////
mx = centerX + (int)((r-20)*Math.cos(Math.PI/2 - minute*(Math.PI/30)));
my = centerY - (int)((r-20)*Math.sin(Math.PI/2 - minute*(Math.PI/30)));
g.setColor(Color.green);
g.drawLine(centerX,centerY, mx, my);
///// 시침의 x,y좌표를 구하여 그린다 /////
hx = centerX + (int)((r-40)*Math.cos(Math.PI/2 - ((hour*60+minute)/10)
* (Math.PI/36)));
hy = centerY - (int)((r-40)*Math.sin(Math.PI/2 - ((hour*60+minute)/10)
*(Math.PI/36)));
g.setColor(Color.blue);
g.drawLine(centerX,centerY, hx, hy);
}
public void run() // 1초에 한번씩 paint메소드 호출
{
while(true)
{
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
}
repaint();
}
}
public static void main(String[] args)
{
Clocklee clock = new Clocklee();
Thread t = new Thread(clock);
t.start();
}
}
'JAVA/JSP > Source' 카테고리의 다른 글
Thread (0) | 2008.07.14 |
---|---|
Graphics(clipRect()) (0) | 2008.07.14 |
JCheckBox/ JRadioButton /JComboBox/ JTable (0) | 2008.07.14 |
야구게임 (0) | 2008.07.14 |
개미 수열 (0) | 2008.07.14 |