Showing posts with label Java Swing Analog Clock. Show all posts
Showing posts with label Java Swing Analog Clock. Show all posts

Tuesday, July 23, 2024

Analog Clock Using Java Swing

 // Analog Clock Using Swing

import java.awt.*;

import javax.swing.*;

import java.util.*;


public class analogClock extends JFrame

{

JFrame f;

JPanel p;


public analogClock()

{

f=new JFrame("Analog Clock Using Swing");

p=new JPanel()

{

public void paint(Graphics g)

{

Calendar time=Calendar.getInstance();

int hour=time.get(Calendar.HOUR_OF_DAY);

int minute=time.get(Calendar.MINUTE);

int second=time.get(Calendar.SECOND);


if(hour > 12)

{

hour=hour-12;

}

g.setColor(Color.BLACK);

g.fillOval(300,100,200,200);


g.setColor(Color.WHITE);

g.setFont(new Font("Lucida console",Font.BOLD,20));


g.drawString("1",440,130);

g.drawString("2",470,160);


g.drawString("3",480,200);

g.drawString("4",480,240);


g.drawString("5",450,280);

g.drawString("6",400,290);


g.drawString("7",341,278);

g.drawString("8",310,240);


g.drawString("9",310,200);

g.drawString("10",320,160);

g.drawString("11",350,130);

g.drawString("12",390,120);


double angle;

int x,y;


Graphics2D g2d1=(Graphics2D)g;

Stroke s1=(new BasicStroke(2f));

g2d1.setStroke(s1);


angle=Math.toRadians((15-second)*6);

x=(int)(Math.cos(angle)*100);

y=(int)(Math.sin(angle)*100);

g.setColor(Color.RED);

g.drawLine(400,200,400+x,200-y);


Graphics2D g2d2=(Graphics2D)g;

Stroke s2=(new BasicStroke(2));

g2d2.setStroke(s2);


angle=Math.toRadians((15-minute)*6);

x=(int)(Math.cos(angle)*80);

y=(int)(Math.sin(angle)*80);

g.setColor(Color.GREEN);

g.drawLine(400,200,400+x,200-y);


Graphics2D g2d3=(Graphics2D)g;

Stroke s3=(new BasicStroke(5));

g2d3.setStroke(s3);


angle=Math.toRadians((15-(hour*5))*6);

x=(int)(Math.cos(angle)*50);

y=(int)(Math.sin(angle)*50);

g.setColor(Color.BLUE);

g.drawLine(400,200,400+x,200-y);


try

{

Thread.sleep(1000);

}

catch(Exception e)

{

System.out.println(e);

}

repaint();

super.paintComponents(g);

f.getContentPane().setBackground(Color.RED);

}

};

f.add(p);

f.setDefaultCloseOperation(EXIT_ON_CLOSE);

f.setSize(800,500);

f.setVisible(true);

}

public static void main(String args[])

{

new analogClock();

}

}


Output :-


Analog Clock Using Swing