
案例二:动态对钟显示 设计要求: 用图形界面和文字动老显示时钟的变化。 实例效果 1查看源文件] import java.applet.Applet; import java.applet AppletContext: import java.awt.: import java.io.Printstream; import java.net.MalformedURLException import java.net.URL: import java.util.Date: public dass clock7am extends Applet implements Runnable Thread scrollingmessage; Image offScreenimage; Graphics oftScreen: Image im; int icount; String browserver: String browserlD; int hoursAdjust: public clock7am() public void init()
案例二:动态时钟显示 设计要求: 用图形界面和文字动态显示时钟的变化。 实例效果 [查看源文件] import java.applet.Applet; import java.applet.AppletContext; import java.awt.*; import java.io.PrintStream; import java.net.MalformedURLException; import java.net.URL; import java.util.Date; public class clock7am extends Applet implements Runnable { Thread scrollingmessage; Image offScreenImage; Graphics offScreen; Image im; int icount; String browserVer; String browserID; int hoursAdjust; public clock7am() { } public void init() {

try browserlD=SystemgetPropertylbrowser"]: browserVer =System.getProperty("browser.version" 1 catch(SecurityException ex) browserlD new String("unknown"): browserVer browserlD: browserver.indexof"4.")>=0可 Date d由te=new Datel): hoursAdjust[date.getTimezoneoffsetD+2)/60+8: 】else hoursAdjust =0: try offScreenlmage =createlmage(64,75): offScreen oftscreenlmage.getGraphics0: catchException_ex) offScreen null; im -getimagelgetCodeBase(l.clock64.g): public void start)
try { browserID = System.getProperty("browser"); browserVer = System.getProperty("browser.version"); } catch(SecurityException _ex) { browserID = new String("unknown"); browserVer = browserID; } if(browserVer.indexOf("4.") >= 0) { Date date = new Date(); hoursAdjust = (date.getTimezoneOffset() + 2) / 60 + 8; } else { hoursAdjust = 0; } try { offScreenImage = createImage(64, 75); offScreen = offScreenImage.getGraphics(); } catch(Exception _ex) { offScreen = null; } im = getImage(getCodeBase(), "clock64.gif"); } public void start()

scrollingmessage=new Thread(this): scrollingmessage start(): 】 public void stopl) 1 scrollingmessagestop( public static int vectorxint i,int j 1 lntk=0+2701%360: int I-(int)((double*Math.cos((double]k *0.017453300000000001D]l: return 1 public static int vector(int i,int jl 1 ntk=0+2701%360: int I =(int)((double Math.sin(doublelk 0.017453300000000001D)1: return 1 public void run( Thread.currentThreadD.setPriority5]: d的 1 System.currentTimeMllis(l: try { Thread.sleep(1000Ll:
{ scrollingmessage = new Thread(this); scrollingmessage.start(); } public void stop() { scrollingmessage.stop(); } public static int vectorX(int i, int j) { int k = (i + 270) % 360; int l = (int)((double)j * Math.cos((double)k * 0.017453300000000001D)); return l; } public static int vectorY(int i, int j) { int k = (i + 270) % 360; int l = (int)((double)j * Math.sin((double)k * 0.017453300000000001D)); return l; } public void run() { Thread.currentThread().setPriority(5); do { System.currentTimeMillis(); try { Thread.sleep(1000L); }

catch[InterruptedException_ex){ repaint() while(true]: 1 public void paint(Graphics g) 1 update(gl: 1 public synchronized void update(Graphics g) ifloffScreen I=null) paintApplet(oftScreen): g.drawlmage(offScreenlmage,0,0,this): return; 】lo paintAppletig月 return: 1 public void paintApplet(Graphics g) gsetColor(new Color[255.255,255]l: g-fillRect(0,0,63,74]: g-drawlmage(im,0,0,this): Date date=new Datel): int i-date getMinutesD: intj=i6; System.out.printin("Hours="+date.getHours():
catch(InterruptedException _ex) { } repaint(); } while(true); } public void paint(Graphics g) { update(g); } public synchronized void update(Graphics g) { if(offScreen != null) { paintApplet(offScreen); g.drawImage(offScreenImage, 0, 0, this); return; } else { paintApplet(g); return; } } public void paintApplet(Graphics g) { g.setColor(new Color(255, 255, 255)); g.fillRect(0, 0, 63, 74); g.drawImage(im, 0, 0, this); Date date = new Date(); int i = date.getMinutes(); int j = i * 6; System.out.println("Hours = " + date.getHours());

int k =(date.getHours()+hoursAdjust)%24; f张≥12到 ka12: new integer(k): nt1=k·30+0/12*6 g-setColor(new Color[0,0,0)): int i1 =vectorxl,18): intj1■vectorY,18t g-setColor(new Color(192,192,255] g-drawLine29,27,30+1,29+1k g.setColor(new Color[o,0,255)l: g-drawLine(30,28,30+i1,29+j1 g-setColor(new Color(0,D,64)]: 息.dawe31,29,304iL,29+j1k i1 vectorxli,25]: 1 vectorYll 251: g.setColor(new Color(192,192,255] g-drawLine29,27,30+1,29+1k g-setColor(new Color[0,0,255)l: g-drawLine302830+i1,29+j1g gsetColor(new Color[0,0,64)]: g.drawLine(31,29,30+i1,29+j1) int k1 date.getSeconds()*6; 1■vectorX[k1,25 j1=vectorY[k1,25]; gsetColor(new Color[128.0,0)): g-drawLinel31.1/3,29-1/3,30+i1,29+1 g-setColor(new Color(255,192,192] gdrawLinel29-i1/3,27-j1/3,30+i1,29+j1 g-setColor(new Color[255,0,)):
int k = (date.getHours() + hoursAdjust) % 24; if(k > 12) k -= 12; new Integer(k); int l = k * 30 + (i / 12) * 6; g.setColor(new Color(0, 0, 0)); int i1 = vectorX(l, 18); int j1 = vectorY(l, 18); g.setColor(new Color(192, 192, 255)); g.drawLine(29, 27, 30 + i1, 29 + j1); g.setColor(new Color(0, 0, 255)); g.drawLine(30, 28, 30 + i1, 29 + j1); g.setColor(new Color(0, 0, 64)); g.drawLine(31, 29, 30 + i1, 29 + j1); i1 = vectorX(j, 25); j1 = vectorY(j, 25); g.setColor(new Color(192, 192, 255)); g.drawLine(29, 27, 30 + i1, 29 + j1); g.setColor(new Color(0, 0, 255)); g.drawLine(30, 28, 30 + i1, 29 + j1); g.setColor(new Color(0, 0, 64)); g.drawLine(31, 29, 30 + i1, 29 + j1); int k1 = date.getSeconds() * 6; i1 = vectorX(k1, 25); j1 = vectorY(k1, 25); g.setColor(new Color(128, 0, 0)); g.drawLine(31 - i1 / 3, 29 - j1 / 3, 30 + i1, 29 + j1); g.setColor(new Color(255, 192, 192)); g.drawLine(29 - i1 / 3, 27 - j1 / 3, 30 + i1, 29 + j1); g.setColor(new Color(255, 0, 0));

g.drawLine30-1/3,28-1/3,30+iL,29+j1: gdrawOval[29,27,2,2k g.drawOval[28,26,4.4): g.setFont(new Font["Helvetia",1,14)): String s=new String0: sk+":"+date.to5tring()substring(14,19): g-setColor(new Color(64.0,0)]: g-drawString/s,6,66): g-setColor(new Color[255,0,)): g.drawString(s,5,65) public boolean mouseUp(Eventevent,int i,int jl URL url nul String s""; try uri=new URL(s方 catch(MalformedURLException_ex) return true; f倒url nully getAppletContext().showDocument(url): return true: public boolean mouseMove(Event event,int i,int showStatus("Goto 7am News"]:
g.drawLine(30 - i1 / 3, 28 - j1 / 3, 30 + i1, 29 + j1); g.drawOval(29, 27, 2, 2); g.drawOval(28, 26, 4, 4); g.setFont(new Font("Helvetica", 1, 14)); String s = new String(); s = k + ":" + date.toString().substring(14, 19); g.setColor(new Color(64, 0, 0)); g.drawString(s, 6, 66); g.setColor(new Color(255, 0, 0)); g.drawString(s, 5, 65); } public boolean mouseUp(Event event, int i, int j) { URL url = null; String s = ""; try { url = new URL(s); } catch(MalformedURLException _ex) { return true; } if(url != null) getAppletContext().showDocument(url); return true; } public boolean mouseMove(Event event, int i, int j) { showStatus("Go to 7am News");

return true; public String getAppletinfo() return "The 7am Clock Applet v2-10n Copyright to Bruce Simpson (1996,97)- http://www.7am.com"; 】 public String getParameterinfo() 1 String as]( 1 "","The 7am Clck.no params" return as;
return true; } public String getAppletInfo() { return "The 7am Clock Applet v2.10\n Copyright to Bruce Simpson (1996,97) - http://www.7am.com"; } public String[][] getParameterInfo() { String as[][] = { { "", "", "The 7am Clock - no params" } }; return as; } }