/* Stop Clock Applet Author:Kanniappan Selvakumar selvakum@tech.iupui.edu */ import java.awt.*; import java.applet.Applet; import java.util.Date; public class stopclock extends Applet implements Runnable { Button b_sta,b_sto; Thread t; Date d_one; int hr,min,sec; int o_hr,o_min,o_sec; int d_hr,d_min,d_sec,d_milsec; boolean bool_sta,bool_sec,bool_min; public void init() { d_hr=d_min=d_sec=0; bool_sta=bool_sec=bool_min=false; setBackground(Color.black); setLayout(new BorderLayout()); Panel p_one=new Panel(); b_sta=new Button("Start"); b_sto=new Button("Stop"); p_one.add(b_sta); p_one.add(b_sto); add("South",p_one); } public void start() { if(t==null) { t=new Thread(this); t.start(); } } public void stop() { if(t!=null) t=null; } public void run() { while(t!=null) { try {t.sleep(80); }catch(Exception e) {} repaint(); } } public void paint(Graphics g) { if(bool_sta) { d_one=new Date(); bool_sec=false; bool_min=false; if(d_one.getSeconds() >= o_sec) d_sec=d_one.getSeconds() - o_sec; else { d_sec=60-o_sec + d_one.getSeconds(); bool_sec=true; } if(bool_sec) d_one.setMinutes(d_one.getMinutes()-1); if(d_one.getMinutes() >= o_min) d_min=d_one.getMinutes() - o_min; else { d_min=60-o_min + d_one.getMinutes(); bool_min=true; } if(bool_min) d_hr=d_one.getHours()-1; d_milsec=(int)(d_one.getTime()-((d_one.getTime()/1000)*1000))/10; if(d_milsec==0) d_one=new Date(); g.setColor(Color.orange); g.setFont(new Font("Arial",Font.BOLD,32)); g.drawString(d_hr+":"+d_min+":"+d_sec+"."+ d_milsec,size().width/2-60,size().height/2-20); } else { g.setColor(Color.orange); g.setFont(new Font("Arial",Font.BOLD,32)); g.drawString(d_hr+":"+d_min+":"+d_sec+"."+ d_milsec,size().width/2-60,size().height/2-20); } } public boolean action(Event evt, Object arg) { if(evt.target==b_sta) { bool_sta=true; d_one=new Date(); o_hr=d_one.getHours(); o_min=d_one.getMinutes(); o_sec=d_one.getSeconds(); } if(evt.target==b_sto) { bool_sta=false; } return true; } }