/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clock;
/**
*
* @author SKUSR
*/
import java.awt.*;
import javax.swing.*;
class DrawClock extends JPanel
{
private int hour ;
private int minute ;
private int second ;
private int xCenter, yCenter;
private int clockRadius;
public DrawClock()
{
}
public void getHMS(int hour, int minute, int second)
{
this.hour = hour;
this.minute = minute;
this.second =second;
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
clockRadius = (int)(Math.min(getSize().width, getSize().height*0.7*0.5));
xCenter = (getSize().width)/2;
yCenter = (getSize().height)/2;
g.setColor(Color.black);
g.drawOval(xCenter - clockRadius, yCenter - clockRadius, 2*clockRadius, 2*clockRadius);
g.drawString("12",xCenter - 5, yCenter-clockRadius);
g.drawString("9", xCenter - clockRadius - 10, yCenter + 3);
g.drawString("3", xCenter+clockRadius, yCenter + 3);
g.drawString("6", xCenter-3, yCenter + clockRadius + 10);
int sLength = (int)(clockRadius * 0.9);
int xSecond = (int)(xCenter + sLength*Math.sin(second*(2*Math.PI/60)));
int ySecond = (int)(yCenter - sLength*Math.cos(second*(2*Math.PI/60)));
g.setColor(Color.red);
g.drawLine(xCenter, yCenter, xSecond, ySecond);
int mLength = (int)(clockRadius * 0.75);
int xMinute = (int)(xCenter + mLength*Math.sin(minute*(2*Math.PI/60)));
int yMinute = (int)(yCenter - mLength*Math.cos(minute*(2*Math.PI/60)));
g.setColor(Color.blue);
g.drawLine(xCenter, yCenter, xMinute, yMinute);
int hLength = (int)(clockRadius * 0.6);
int xHour = (int)(xCenter + hLength*Math.sin((hour + minute/60.0)*(2*Math.PI/12)));
int yHour = (int)(yCenter - hLength*Math.cos((hour + minute/60.0)*(2*Math.PI/12)));
g.setColor(Color.green);
g.drawLine(xCenter, yCenter, xHour, yHour);
g.setColor(Color.red);
String time = hour + ": : " + minute + ": : " + second;
FontMetrics fm = g.getFontMetrics();
g.drawString(time, (getSize().width - fm.stringWidth(time))/2, yCenter + clockRadius + 30);
}
}