﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-★yesjoy★-文章分类-java.applet包</title><link>http://www.blogjava.net/yesjoy/category/7308.html</link><description>&lt;font color="red"&gt;★&lt;/font&gt;&lt;font color="blue"&gt;总在爬山 所以艰辛;总在寻梦 所以苦痛&lt;/font&gt;&lt;font color="red"&gt;★&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Thu, 09 Sep 2010 23:29:38 GMT</lastBuildDate><pubDate>Thu, 09 Sep 2010 23:29:38 GMT</pubDate><ttl>60</ttl><item><title>Java Applet 编程技巧实例专辑</title><link>http://www.blogjava.net/yesjoy/articles/29975.html</link><dc:creator>★yesjoy★</dc:creator><author>★yesjoy★</author><pubDate>Wed, 08 Feb 2006 14:48:00 GMT</pubDate><guid>http://www.blogjava.net/yesjoy/articles/29975.html</guid><wfw:comment>http://www.blogjava.net/yesjoy/comments/29975.html</wfw:comment><comments>http://www.blogjava.net/yesjoy/articles/29975.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yesjoy/comments/commentRss/29975.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yesjoy/services/trackbacks/29975.html</trackback:ping><description><![CDATA[Java最初奉献给世人的就是Applet，随即它吸引了全世界的目光，Applet运行于浏览器上，可以生成生动美丽的页面，进行友好的人机交互，同时还能处理图像、声音、动画等多媒体数据。Applet在Java的成长过程中起到不可估量的作用，到今天Applet依然是Java程序设计最吸引的人之一。在本期专题中我将向读者介绍Applet编程的一些技巧。<BR>Applet小应用程序编程是Java的一个重要内容，与一般的应用程序不同，Applet应用程序必须嵌入在HTML页面中，才能得到解释执行。详细参考<A href="/yesjoy/articles/29968.html" target=_blank><FONT color=#990000><STRONG>Applet程序设计基础</STRONG></FONT></A>　<BR><A href="http://www.7dspace.com/doc/26/2005-08-16/200581610100764002.htm" target=_blank><FONT color=#990000><STRONG>实现文字显示</STRONG></FONT></A><BR>显示文字是Java中最基本的功能，使用非常简单的方式来支持文字的显示，只要使用类Graphics中的drawString()函数就能实现。我们来看最简单的showText例子：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">showText.java&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.applet.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;showText&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;Applet&nbsp;<BR>{&nbsp;<BR>&nbsp;String&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">yesjoy&nbsp;is&nbsp;a&nbsp;student!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;paint(Graphics&nbsp;g)&nbsp;<BR>&nbsp;{<BR>&nbsp;&nbsp;g.drawString(text,</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">);</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">在坐标20,20&nbsp;处显示text的内容&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&nbsp;}&nbsp;<BR>}</SPAN></DIV>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">test&nbsp;process&nbsp;Applet</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>Here&nbsp;comes&nbsp;my&nbsp;showText&nbsp;applet:<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">br</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">APPLET<BR></SPAN><SPAN style="COLOR: #ff0000">CODE</SPAN><SPAN style="COLOR: #0000ff">="showText.class"</SPAN><SPAN style="COLOR: #ff0000"><BR>WIDTH</SPAN><SPAN style="COLOR: #0000ff">=400<BR></SPAN><SPAN style="COLOR: #ff0000">HEIGHT</SPAN><SPAN style="COLOR: #0000ff">=100</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">APPLET</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV>这是最基本的Java Applet，运行的时候仅显示“yesjoy is a student!”。Java支持Unicode，因此中文也能在Java中很好地显示出来，我们把“yesjoy is a student!”改成“你好！欢迎参观！”，同样可以显示(如果无法正确显示，则是浏览器的Bug，如用的IE4.0 就存在这样的问题，请改用Netscape 或IE5.0 以上版本)。值得注意的是，在Java中每个字符用16位来表示，而不是8位，这与C语言是不同的。 <BR><A href="http://www.7dspace.com/doc/26/2005-08-16/200581610100768705.htm" target=_blank><FONT color=#990000><STRONG>响应鼠标键盘事件</STRONG></FONT></A><BR>与用户的交互是Java的主要作用，也正是Java吸引人的原因，用户可以通过鼠标与Java Applet程序对话。我们先来看响应鼠标的例子： <BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">Mouse.java&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.applet.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;Mouse&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;Applet&nbsp;<BR>{&nbsp;<BR>&nbsp;String&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;paint(Graphics&nbsp;g)&nbsp;<BR>&nbsp;{<BR>&nbsp;&nbsp;g.drawString(text,</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;}&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">boolean</SPAN><SPAN style="COLOR: #000000">&nbsp;mouseDown(Event&nbsp;evt,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;x,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;y)</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">鼠标按下处理函数&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&nbsp;{&nbsp;<BR>&nbsp;&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Mouse&nbsp;Down</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;&nbsp;repaint();&nbsp;<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;}&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">boolean</SPAN><SPAN style="COLOR: #000000">&nbsp;mouseUp(Event&nbsp;evt,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;x,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;y)</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">鼠标松开处理函数&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&nbsp;{&nbsp;<BR>&nbsp;&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;&nbsp;repaint();&nbsp;<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;}&nbsp;<BR>}</SPAN></DIV>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">test&nbsp;process&nbsp;Applet</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>Here&nbsp;comes&nbsp;my&nbsp;Mouse&nbsp;applet:<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">br</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">APPLET<BR></SPAN><SPAN style="COLOR: #ff0000">CODE</SPAN><SPAN style="COLOR: #0000ff">="Mouse.class"</SPAN><SPAN style="COLOR: #ff0000"><BR>WIDTH</SPAN><SPAN style="COLOR: #0000ff">=400<BR></SPAN><SPAN style="COLOR: #ff0000">HEIGHT</SPAN><SPAN style="COLOR: #0000ff">=100</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">APPLET</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV>　　当用户点击程序时，程序将显示"Mouse Down"，说明程序对鼠标作出了响应。然而要注意Java并不区分鼠标的左右键。
<P><SPAN class=f14>　　我们再来看对键盘响应的例子： <BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">Keyboard.java&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.applet.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;Keyboard&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;Applet&nbsp;<BR>{&nbsp;<BR>&nbsp;String&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;paint(Graphics&nbsp;g)&nbsp;<BR>&nbsp;{<BR>&nbsp;&nbsp;g.drawString(text,</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;}&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">boolean</SPAN><SPAN style="COLOR: #000000">&nbsp;keyDown(Event&nbsp;evt,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;x)</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">键盘被按下的处理函数&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&nbsp;{&nbsp;<BR>&nbsp;&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Key&nbsp;Down</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;&nbsp;repaint();&nbsp;<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;}&nbsp;<BR>&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">boolean</SPAN><SPAN style="COLOR: #000000">&nbsp;keyUp(Event&nbsp;evt,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;x)</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">键盘被松开的处理函数&nbsp;</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">&nbsp;{&nbsp;<BR>&nbsp;&nbsp;text</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;&nbsp;repaint();&nbsp;<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">true</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR>&nbsp;}&nbsp;<BR>}</SPAN></DIV>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">test&nbsp;Keyboard&nbsp;Applet</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>Here&nbsp;comes&nbsp;my&nbsp;Keyboard&nbsp;applet:<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">br</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">APPLET<BR></SPAN><SPAN style="COLOR: #ff0000">CODE</SPAN><SPAN style="COLOR: #0000ff">="Keyboard.class"</SPAN><SPAN style="COLOR: #ff0000"><BR>WIDTH</SPAN><SPAN style="COLOR: #0000ff">=400<BR></SPAN><SPAN style="COLOR: #ff0000">HEIGHT</SPAN><SPAN style="COLOR: #0000ff">=100</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">APPLET</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV>当键盘被按下时，程序就会显示"Key Down"，键盘松开时清除文字。利用这些函数，我们就可以用鼠标和键盘函数与用户交互。<BR>
<P><BR></SPAN><BR>&nbsp;</P><img src ="http://www.blogjava.net/yesjoy/aggbug/29975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yesjoy/" target="_blank">★yesjoy★</a> 2006-02-08 22:48 <a href="http://www.blogjava.net/yesjoy/articles/29975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Applet程序设计基础</title><link>http://www.blogjava.net/yesjoy/articles/29968.html</link><dc:creator>★yesjoy★</dc:creator><author>★yesjoy★</author><pubDate>Wed, 08 Feb 2006 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/yesjoy/articles/29968.html</guid><wfw:comment>http://www.blogjava.net/yesjoy/comments/29968.html</wfw:comment><comments>http://www.blogjava.net/yesjoy/articles/29968.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yesjoy/comments/commentRss/29968.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yesjoy/services/trackbacks/29968.html</trackback:ping><description><![CDATA[Java Applet 是用Java 语言编写的一些小应用程序，这些程序是直接嵌入到页面中，由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页，可以称其为Java支持的网页。 <BR>　　当用户访问这样的网页时，Applet被下载到用户的计算机上执行，但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的，所以它的执行速度不受网络带宽或者Modem存取速度的限制，用户可以更好地欣赏网页上Applet产生的多媒体效果。<BR>　　Applet 小应用程序的实现主要依靠java.applet 包中的Applet类。与一般的应用程序不同，Applet应用程序必须嵌入在HTML页面中，才能得到解释执行；同时Applet可以从Web页面中获得参数，并和Web页面进行交互。<BR>　　含有Applet的网页的HTML文件代码中必须带有&lt;applet&gt;和&lt;/applet&gt;这样一对标记，当支持Java的网络浏览器遇到这对标记时，就将下载相应的小程序代码并在本地计算机上执行该Applet小程序。<BR>　　Applet是一种Java的小程序，它通过使用该Applet的HTML文件，由支持Java的网页浏览器下载运行。也可以通过java开发工具的appletviewer来运行。Applet 程序离不开使用它的HTML文件。这个HTML文件中关于Applet的信息至少应包含以下三点：<BR>　　1)字节码文件名(编译后的Java文件，以.class为后缀)<BR>　　2)字节码文件的地址<BR>　　3)在网页上显示Applet的方式。<BR>　　一个HTML文件增加Applet有关的内容只是使网页更加富有生气，如添加声音、动画等这些吸引人的特征，它并不会改变HTML文件中与Applet无关的元素。 
<P><SPAN class=f14><SPAN class=f14>　　(一) Applet程序开发步骤<BR>　　Applet程序开发主要步骤如下：<BR>　　1)选用EDIT或Windows Notepad等工具作为编辑器建立Java Applet源程序。<BR>　　2)把Applet的源程序转换为字节码文件。<BR>　　3)编制使用class 的HTML文件。在HTML文件内放入必要的&lt;APPLET&gt;语句。<BR>　　下面举一个最简单的HelloWorld 例子来说明Applet程序的开发过程：<BR>　　(1) 编辑Applet 的java源文件<BR>　　创建文件夹C:\ghq，在该文件夹下建立 HelloWorld.java <BR>　　文件的源代码如下：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.applet.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;HelloWorld&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;Applet&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">继承Appelet类，这是Appelet&nbsp;Java程序的特点</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000">{<BR>　</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;paint(Graphics&nbsp;g&nbsp;)<BR>　{<BR>　　g.drawString(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Hello&nbsp;World!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">5</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">35</SPAN><SPAN style="COLOR: #000000">)；<BR>　}<BR>}</SPAN></DIV>
<P><BR>　　保存上述程序在C:\ghq\HelloWorld.java文件里。<BR>　　(2)编译Applet<BR>　　编译HelloWorld.java源文件可使用如下JDK命令：</P>
<P>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1>
<TBODY>
<TR>
<TD>C:\ghq\&gt;javac HelloWorld.java&lt;Enter&gt;</TD></TR></TBODY></TABLE><BR>　　注意：如果编写的源程序违反了Java编程语言的语法规则，Java编译器将在屏幕上显示语法错误提示信息。源文件中必须不含任何语法错误，Java编译器才能成功地把源程序转换为appletviewer和浏览器能够执行的字节码程序。<BR>　　成功地编译Java applet之后生成响应的字节码文件HelloWorld.class的文件。用资源管理器或DIR命令列出目录列表，将会发现目录C:\ghq中多了一个名为HelloWorld.class的文件。<BR>　　(3)创建HTML文件<BR>　　在运行创建的HelloWorld.class 之前，还需创建一个HTML文件，appletviewer或浏览器将通过该文件访问创建的Applet。为运行HelloWorld.class, 需要创建包含如下HTML语句的名为HelloWorld.html的文件。<BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">HelloWorld!&nbsp;Applet</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">APPLET<BR></SPAN><SPAN style="COLOR: #ff0000">CODE</SPAN><SPAN style="COLOR: #0000ff">="HelloWorld.class"</SPAN><SPAN style="COLOR: #ff0000"><BR>WIDTH</SPAN><SPAN style="COLOR: #0000ff">=200<BR></SPAN><SPAN style="COLOR: #ff0000">HEIGHT</SPAN><SPAN style="COLOR: #0000ff">=100</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">APPLET</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR></SPAN></DIV>
<P>　　本例中，&lt;APPLET&gt;语句指明该Applet字节码类文件名和以像素为单位的窗口的尺寸。虽然这里HTML文件使用的文件名为HelloWorld.HTML，它对应于HelloWorld.java的名字，但这种对应关系不是必须的，可以用其他的任何名字(比如说Ghq.HTML)命名该HTML文件。但是使文件名保持一种对应关系可给文件的管理带来方便。<BR>　　(4)执行 HelloWorld.html<BR>　　如果用appletviewer运行HelloWorld.html,需输入如下的命令行：</P>
<P>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1>
<TBODY>
<TR>
<TD>C:\ghq\&gt;appletviewer JavaWorld.html&lt;ENTER&gt;</TD></TR></TBODY></TABLE><BR>　　可以看出，该命令启动了appletviewer并指明了HTML文件，该HTML文件中包含对应于HelloWorld 的&lt;APPLET&gt;语句。<BR>　　如果用浏览器运行HelloWorld Applet,需在浏览器的地址栏中输入HTML文件URL地址。<BR>　　至此，一个Applet程序的开发运行整个过程结束了(包括java源文件、编译的class文件、html文件以及用appletviewer或用浏览器运行)。</P>
<P><SPAN class=f14>　　(二) Applet类<BR>　　Applet类是所有Applet应用的基类，所有的Java小应用程序都必须继承该类。如下所示。<BR>　　Applet类的构造函数只有一种，即：public Applet()<BR>　　Applet实现了很多基本的方法，下面列出了Applet类中常用方法和用途。<BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">final</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;setStub(AppletStub&nbsp;stub)<BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">设置Applet的stub.stub是Java和C之间转换参数并返回值的代码位，它是由系统自动设定的。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">boolean</SPAN><SPAN style="COLOR: #000000">&nbsp;isActive();</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;判断一个Applet是否处于活动状态。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;URL&nbsp;getDocumentBase();</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;检索表示该Applet运行的文件目录的对象。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;URL&nbsp;getCodeBase();</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;获取该Applet&nbsp;代码的URL地址。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getParameter(String&nbsp;name)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;获取该Applet&nbsp;由name指定参数的值。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;AppletContext&nbsp;getAppletContext()；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;返回浏览器或小应用程序观察器。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;resize(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;width,</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;height)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;调整Applet运行的窗口尺寸。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;resize(Dimension&nbsp;d)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;调整Applet运行的窗口尺寸。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;showStatus(String&nbsp;msg)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;在浏览器的状态条中显示指定的信息。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;Image&nbsp;getImage(URL&nbsp;url)；&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;按url指定的地址装入图象。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;Image&nbsp;getImage(URL&nbsp;url,String&nbsp;name)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;按url指定的地址和文件名加载图像。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;AudioClip&nbsp;getAudioClip(URL&nbsp;url)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;按url指定的地址获取声音文件。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;AudioClip&nbsp;getAudioClip(URL&nbsp;url,&nbsp;String&nbsp;name)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;按url指定的地址和文件名获取声音。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getAppletInfo()；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;返回Applet应用有关的作者、版本和版权方面的信息；</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String[][]&nbsp;getParameterInfo()；<BR></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;返回描述Applet参数的字符串数组，该数组通常包含三个字符串：&nbsp;参数名、该参数所需值的类型和该参数的说明。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;play(URL&nbsp;url)；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;加载并播放一个url指定的音频剪辑。</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;destroy()；</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">撤消Applet及其所占用的资源。若该Applet是活动的，则先终止该Applet的运行。</SPAN></DIV>
<P>　　(1) Applet运行状态控制基本方法<BR>　　Applet类中的四种基本方法用来控制其运行状态：init()、start()、stop()、destroy()<BR>　　init()方法<BR>　　这个方法主要是为Applet的正常运行做一些初始化工作。当一个Applet被系统调用时，系统首先调用的就是该方法。通常可以在该方法中完成从网页向Applet传递参数，添加用户界面的基本组件等操作。<BR>　　start()方法<BR>　　系统在调用完init()方法之后，将自动调用start()方法。而且，每当用户离开包含该Applet的主页后又再返回时，系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行，而不像init()方法。因此，可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程，如继续一个动画、声音等。<BR>　　stop()方法<BR>　　这个方法在用户离开Applet所在页面时执行，因此，它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候，停止一些耗用系统资源的工作以免影响系统的运行速度，且并不需要人为地去调用该方法。如果Applet中不包含动画、声音等程序，通常也不必实现该方法。<BR>　　destroy()方法<BR>　　与对象的finalize()方法不同，Java在浏览器关闭的时候才调用该方法。Applet是嵌在HTML文件中的，所以destroty()方法不关心何时Applet被关闭，它在浏览器关闭的时候自动执行。在destroy()方法中一般可以要求收回占用的非内存独立资源。(如果在Applet仍在运行时浏览器被关闭，系统将先执行stop()方法，再执行destroy()方法。<BR>下面一个程序可以更好的帮助我们理解Java&nbsp;Applet在整个生命周期是如何调用上面我们介绍的几个方法的。<BR>　　文件名:StartStop.java</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.applet.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;StartStop&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;Applet<BR>{<BR>&nbsp;&nbsp;StringBuffer&nbsp;message;<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;init()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;message</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;StringBuffer(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Init&nbsp;done<IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;}&nbsp;&nbsp;<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;start()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;message.append(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Started<IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;stop()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;message.append(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Stopped<IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;paint(Graphics&nbsp;g)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;g.drawString(message.toString(),</SPAN><SPAN style="COLOR: #000000">50</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">50</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;}<BR>}</SPAN></DIV>
<P></P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件名:StartStop.html<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">test&nbsp;process&nbsp;Applet</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">TITLE</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>Here&nbsp;comes&nbsp;my&nbsp;process&nbsp;applet:<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">br</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">APPLET<BR></SPAN><SPAN style="COLOR: #ff0000">CODE</SPAN><SPAN style="COLOR: #0000ff">="StartStop.class"</SPAN><SPAN style="COLOR: #ff0000"><BR>WIDTH</SPAN><SPAN style="COLOR: #0000ff">=400<BR></SPAN><SPAN style="COLOR: #ff0000">HEIGHT</SPAN><SPAN style="COLOR: #0000ff">=100</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">APPLET</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">HTML</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV>
<P>　　(2) Applet应用的有关参数说明<BR>　　利用Applet来接收从HTML中传递过来的参数,下面对这些参数作一简单说明：<BR>　　* CODE标志<BR>　　CODE标志指定Applet的类名；WIDTH和HEIGHT标志指定Applet窗口的像素尺寸。在APPLET语句里还可使用其他一些标志。<BR>　　* CODEBASE 标志<BR>　　CODEBASE标志指定Applet的URL地址。Applet的通用资源定位地址URL，它可以是绝对地址 ，如www.sun.com。也可以是相对于当前HTML所在目录的相对地址，如/AppletPath/Name。如果HTML文件不指定CODEBASE 标志，浏览器将使用和HTML文件相同的URL。<BR>　　* ALT 标志<BR>　　虽然Java在WWW上很受欢迎，但并非所有浏览器都对其提供支持。如果某浏览器无法运行Java Applet，那么它在遇到APPLET语句时将显示ALT标志指定的文本信息。<BR>　　* ALIGN 标志<BR>　　ALIGN标志可用来控制把Applet窗口显示在HTML文档窗口的什么位置。与HTML&lt;LMG&gt;语句一样，ALIGN标志指定的值可以是TOP、MIDDLE或BOTTOM。<BR>　　* VSPACE与HSPACE 标志<BR>　　VSPACE和HSPACE标志指定浏览器显示在Applet窗口周围的水平和竖直空白条的尺寸，单位为像素。如下例使用该标志在Applet窗口之上和之下各留出50像素的空白，在其左和其右各留出25像素的空白：<BR>　　* NAME 标志<BR>　　NAME标志把指定的名字赋予Applet的当前实例。当浏览器同时运行两个或多个Applet时，各Applet可通过名字相互引用或交换信息。如果忽略NAME标志，Applet的名字将对应于其类名。<BR>　　* PARAM 标志<BR>　　通用性是程序设计所追求的目标之一。使用户或者程序员能很方便地使用同一个Applet完成不同的任务是通用性的具体表现。从HTML文件获取信息是提高Applet通用性的一条有效途径。<BR>　　假设编制了一个把某公司的名字在屏幕上卷动的Applet。为了使该Applet更加通用，则可以使该Applet从HTML文件获取需要卷动的文本信息。这样，若想显示另一个公司的名字，用不着修改Java Applet本身，只需修改HTML文件即可。<BR>　　PARAM 标志可用来在HTML文件里指定参数，格式如下所示：<BR>PARAM Name="name" Value="Liter"<BR>　　Java Applet可调用getParameter方法获取HTML文件里设置的参数值。<BR>然而，JDK并不是可视化的RAD(rapid&nbsp;application&nbsp;development)开发工具，对于对象的使用不能如Delphi那样只需要拖拉，移位就可以，而需要我们写调用代码.这就产生了一个麻烦，我怎么样才能够让元素按我的要求在界面中摆放呢?在元素不多时可以让Java自动布局（Layout)，但是元素很多时，或者需要根据应用程序的要求来摆放元素时，就需要使用面板了(Panel).面板在Delphi里也有相应的组件(TPanel)，但主要是用来对界面分割，进行粗略的布局的，精确的定位还需要开发人员手动调节.而Java则只能用Panel来定位，不能不说是个缺陷.也许是我还没学到吧。<BR><BR>　　入门之后，就该深入到对象的概念了。<BR>　　假设在Java中创建了一个叫做Date的自定义数据类型如下<BR>
<TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 borderColorDark=#ffffff cellPadding=4 width="98%" align=center bgColor=#e6e6e6 borderColorLight=#009ace border=1>
<TBODY>
<TR>
<TD style="WORD-WRAP: break-word">&nbsp;public&nbsp;class&nbsp;Date{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;day;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;month;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;year;<BR>&nbsp;&nbsp;}</TD></TR></TBODY></TABLE>　那么对于以下三条声名变量的语句，java在为其分配内存的时候有什么不同吗？&nbsp; 
<TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 borderColorDark=#ffffff cellPadding=4 width="98%" align=center bgColor=#e6e6e6 borderColorLight=#009ace border=1>
<TBODY>
<TR>
<TD style="WORD-WRAP: break-word">&nbsp;(1)&nbsp;int&nbsp;i;<BR>&nbsp;&nbsp;(2)&nbsp;Date&nbsp;mybirth;<BR>&nbsp;&nbsp;(3)&nbsp;Date&nbsp;mybirth=new&nbsp;Date();</TD></TR></TBODY></TABLE>　　很显然是有的，分配情况如下:<BR>　　(1)Java自动为整数i分配整形变量的内存，一般是两个字节<BR>　　(2)Java声明了一个Date类的实例变量mybirth，并为其分配了存储空间，但这个存储空间里面存储的只是一个引用，或者说是一个地址，目前的地址里面什么都没有，那么我们就还不能使用这个实例变量，不能引用它的成员。<BR>　　(3)Java创建了一个Date类的实例变量mybirth，并为其成员变量分配了足够的存储空间，最后返回对这个存储空间的一个引用，也就是返回这个存储空间的首地址，以后就通过mybirth，即这个首地址来访问这个实例变量里面的各个成员，如mybirth.day，mybirth.month，mybirth.year。<BR>　　当我们声明一个基本数据类型的变量（如boolean，&nbsp;byte，&nbsp;short，&nbsp;char，&nbsp;int，long，flat，double）时，系统会自动为变量分配内存。但是如果声明了String或者用户自定义的变量时，系统不会立即为其分配内存.为什么会这样呢?<BR>　　这是因为，String和用户自定义的变量都属于类的范畴.一个被声明为类的变量，已经不再是一个数据了，而变成对数据的一个引用，就是说mybirth可以看作是一个指向类的一个实例的指针，里面存放的是地址.这样的话就好理解了。<BR>　　深入一点，既然类的实例变量值是指针，这个指针指向一个类的实例，那么我们显然可以定义多个名称不同的类的实例变量，而将它们全都指向一个实例。比如：<BR>　　&nbsp;University&nbsp;u=new&nbsp;University();//定义了一个类University的实例变量u，并为其分配对象的存储空间<BR>　　University&nbsp;u2=u;//又定义了一个实例变量u2，将u的值赋给u2<BR>　　那么显然u2和u除了名称不同外，其实是一回事，因为它们指向相同一个地址.<BR>　　我觉得弄清楚这一点还是很重要的。这些数据结构的东西，是一个程序员需要知道的所以然. </SPAN></SPAN></SPAN></P><img src ="http://www.blogjava.net/yesjoy/aggbug/29968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yesjoy/" target="_blank">★yesjoy★</a> 2006-02-08 21:32 <a href="http://www.blogjava.net/yesjoy/articles/29968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>