import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.util.*; import javax.swing.Timer; public class Kell2 extends Applet implements ActionListener{ int keskx, kesky, raadius; int kellatund, kellaminut, kellasekund; double tunninurk=Math.PI/6; double minutinurk=Math.PI/30; static final long serialVersionUID=1; Timer tiksuja=new Timer(1000, this); public Kell2(){ kaivitaKell(); } public Kell2(int tund, int minut, int sekund){ muudaAeg(tund, minut, sekund); } double[] leiaOtspunkt(double nurk, double raadius){ double[] vastus=new double[2]; vastus[0] = keskx+raadius*Math.cos(nurk-Math.PI/2); vastus[1] = kesky+raadius*Math.sin(nurk-Math.PI/2); return vastus; } public void actionPerformed(ActionEvent e){ if(e.getSource()==tiksuja){ kellPraegusesseAega(); } } public void kaivitaKell(){ if(!tiksuja.isRunning()){ tiksuja.start(); kellPraegusesseAega(); } } public void peataKell(){ if(tiksuja.isRunning()){ tiksuja.stop(); } } public boolean kasKellKaib(){ return tiksuja.isRunning(); } public void kellPraegusesseAega(){ Calendar c=new GregorianCalendar(); kellatund=c.get(Calendar.HOUR); kellaminut=c.get(Calendar.MINUTE); kellasekund=c.get(Calendar.SECOND); repaint(); } public int[] kellaAeg(){ return new int[]{kellatund, kellaminut, kellasekund}; } public void muudaAeg(int uusTund, int uusMinut, int uusSekund){ kellatund=uusTund; kellaminut=uusMinut; kellasekund=uusSekund; repaint(); } public void paint(Graphics g){ keskx=getWidth()/2; kesky=getHeight()/2; raadius=Math.min(getWidth()/2, getHeight()/2); double[] t=leiaOtspunkt(kellatund*tunninurk, raadius*0.5); double[] m=leiaOtspunkt(kellaminut*minutinurk, raadius*0.7); double[] s=leiaOtspunkt(kellasekund*minutinurk, raadius*0.9); g.drawLine(keskx, kesky, (int)t[0], (int)t[1]); g.drawLine(keskx, kesky, (int)m[0], (int)m[1]); g.drawLine(keskx, kesky, (int)s[0], (int)s[1]); double numbriraadius=raadius*0.8; for(int tund=1; tund<=12; tund++){ double[] n=leiaOtspunkt(tund*tunninurk, numbriraadius); g.drawString(String.valueOf(tund), (int)n[0], (int)n[1]); } } public static void main(String[] arg){ Frame f=new Frame("Kell"); f.add(new Kell2()); f.setSize(300, 300); f.setVisible(true); } }