Java Get Hour, Minute and Second
Simple code to make analog clock with Java. This section is to show how to get hour, minute and second from java.util.Calendar.
package myjavaexample; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.util.Calendar; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class MyJavaExample extends JFrame { public void openImage() { JPanel pane = new JPanel() { protected void paintComponent(Graphics g) { super.paintComponent(g); Calendar now = Calendar.getInstance(); int hour = now.get(Calendar.HOUR); int minute = now.get(Calendar.MINUTE); int second = now.get(Calendar.SECOND); Graphics2D g2d = (Graphics2D)g; g2d.translate(0.5*this.getWidth(),0.5*this.getWidth()); g2d.setColor(Color.BLUE); Rectangle rect = new Rectangle(-20,-10, 100, 20); double angle=Math.toRadians(-90+hour*360.0/12); g2d.rotate(angle); g2d.fill(rect); g2d.rotate(-angle); g2d.setColor(Color.BLACK); rect = new Rectangle(-20,-10, 150, 20); angle=Math.toRadians(-90+minute*360.0/60); g2d.rotate(angle); g2d.fill(rect); g2d.rotate(-angle); g2d.setColor(Color.RED); rect = new Rectangle(-20,-5, 200, 10); angle=Math.toRadians(-90+second*360.0/60); g2d.rotate(angle); g2d.fill(rect); g2d.rotate(-angle); } }; pane.setPreferredSize(new Dimension(400,400)); add(pane); setTitle("Rotating Image"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setSize(200,200); setLocation(100,100); pack(); setVisible(true); Thread th=new Thread(new Runnable(){ public void run() { while(true){ try{ Thread.sleep(10); pane.repaint(); }catch(InterruptedException e){} } } }); th.start(); } public static void main(String[] args) { MyJavaExample mainwin=new MyJavaExample(); mainwin.openImage(); } }



Comments
Post a Comment