Using java build a beautiful clock display current time
THIS IS THE CODE TO DISPLAY A BEAUTIFUL CLOCK
package javaaa;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.util.Calendar;
import javax.swing.*;
public class Javaaa extends JApplet {
public static void main(String s[]) {
JFrame frame = new JFrame();
frame.setTitle("Clock");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JApplet applet = new Javaaa();
applet.init();
frame.getContentPane().add(applet);
frame.pack();
frame.setVisible(true);
}
public void init() {
JPanel panel = new ClockPanel();
getContentPane().add(panel);
}
}
class ClockPanel extends JPanel implements ActionListener{
AffineTransform rotH = new AffineTransform();
AffineTransform rotM = new AffineTransform();
AffineTransform rotS = new AffineTransform();
public ClockPanel() {
setPreferredSize(new Dimension(640, 480));
setBackground(Color.white);
Timer timer = new Timer(500, this);
timer.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
Font currentFont = g2.getFont();
g2.translate(320,240);
// clock face
Paint paint = new GradientPaint
(-140,-140,Color.GREEN,-10,-10,Color.ORANGE);
g2.setPaint(paint);
g2.fillOval(-210, -210, 420, 420);
g2.setColor(Color.red);
Font newFont = currentFont.deriveFont(currentFont.getSize() * 3.4F);
g2.setFont(newFont);
g2.drawString("CLOCK", -70, 80);
g2.setColor(Color.black);
Font newFont1 = currentFont.deriveFont(currentFont.getSize() * 2.4F);
g2.setFont(newFont1);
g2.drawString("12", -18, -140);
g2.drawString("3", 134, 19);
g2.drawString("6", -8, 159);
g2.drawString("9", -149, 20);
Stroke stroke = new BasicStroke(3);
g2.setStroke(stroke);
g2.drawOval(-210, -210, 420, 420);
for (int i = 0; i < 24; i++) {
g2.rotate(2*Math.PI/12);
if(i%2==0)
g2.setColor(Color.BLUE);
else
g2.setColor(Color.red);
g2.fill3DRect(-30, -200, 60, 30, true);
}
// clock hands
Shape hour = new Line2D.Double(0, 0, 0, -100);
hour = rotH.createTransformedShape(hour);
Shape minute = new Line2D.Double(0, 0, 0, -140);
minute = rotM.createTransformedShape(minute);
Shape second = new Line2D.Double(0, 0, 0, -170);
second = rotS.createTransformedShape(second);
g2.setColor(Color.MAGENTA);
g2.setStroke(new BasicStroke(10,
BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
g2.draw(hour);
g2.draw(minute);
g2.setStroke(new BasicStroke(4));
g2.draw(second);
}
public void actionPerformed(ActionEvent e) {
int hour = Calendar.getInstance().get(Calendar.HOUR);
int min = Calendar.getInstance().get(Calendar.MINUTE);
int sec = Calendar.getInstance().get(Calendar.SECOND);
rotH.setToRotation(Math.PI * (hour+min/60.0)/6.0);
rotM.setToRotation(Math.PI * min /30.0);
rotS.setToRotation(Math.PI * sec /30.0);
repaint();
}}
OUTPUT
No comments:
Post a Comment