|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
3. Applet 3.1 Hello World Applet 接下来使用Applet实现Hello World,借此先了解最简朴的Applet程序及使用方式。 1: import java.awt.Graphics; 3: public class HelloWorldApplet extends java.applet.Applet { 4: 5: public void paint(Graphics g) { 6: g.drawString("Hello world!", 5, 25); 7: } 8:} Applet说明: (1) 首先Applet一般是从java.applet.Applet中继续过来的; (2) paint()方式必须是public,不然不能被其它程序准确调用; (3) 由于paint方式使用了Graphics类,所以Applet需要引用java.awt. (4) Graphics,当然假如其它的类假如也可以实现Graphics类的功能,也可以引用之; (5) 在Applet中没有public static void main这个方式,所以它不能独立执行,必须由专门的程序(如游览器)调用执行,Applet程序被调用后,会自动执行paint方式。 这样一个Applet就完成了,以HelloWorldApplet.java文件名保存,使用正常的编译命令编译之,即javac HelloWorldApplet.java,编译完后会生成.class文件,接下来就是在网页中引入之个Applet小程序,这里我们在HTML中引入该Applet小程序: <html> <body> <APPLET code="HelloWorldApplet.class" width=150 height=25></APPLET> </body> </html> (6) 这是一个简朴的Applet引用方式,在Html中使用标签APPLET来引用Applet,code属性指定Applet的程序名,在这个例子中引入的Applet与html文件在同一个目录下,所以没加路径说明,假如不是可以使用codebase指定applet所在的路径,路径表示方式与html中的相同; (7) 其它属性width及时性height是HTML的标准属性 (8) 但是该HTML在游览器中执行时,并不一定能执行Applet小程序。详细原因我还没找到,我使用的操作系统是XP,浏览器是IE6.0,并且已安装了java虚拟机,已经测试过可以正常游览有applet的网站。假如有人知道请不访告诉我(email: 8280338@tzenet.com),大家共同进步。 还有另一个方式可以测试Applet,就是使用appletViewer命令,假如上述的Html文件名为hello.htm,那么可以使用: appletViewer hello.htm 查看html文件中引入的applet小程序,该命令会忽略html代码,直接执行applet代码。 3.2 Applet参数使用方式 在Applet中可以使用<param>标签向Applet传递参数,如: <applet ….> <param NAME=font VALUE="TimesRoman"> …… </applet> 当applet执行时,这些参数就会被传入,可以在init方式中使用getParameter()方式获取这些传入参数的值,如getParameter("font"),该方式返回值始终是String类型的,所以必要的时候还需进行相应的类型转变。假如没有相应的传入参数,那么getParameter()方式会返回null值。 3.3 Applet基本方式 从java.applet.Applet继续过来的applet会有五个基本的方式: (1) init()方式:当applet被加载时,会首先执行init方式,该方式相称于java application中的main,该方式只能被执行一次; (2) start()方式:init方式执行完毕会就会自动执行start方式,start方式可以被反复执行,如一个applet被stop后,可以使用start方式重新开动它; (3) stop()方式:停止执行applet,与start方式相对应 (4) destroy()方式:与init方式相对应; (5) paint()方式:输出指定内容,paint方式会被反复的调用,在applet初始化时、窗口移动时等; (6) repaint()方式:该方式调用update方式; (7) update()方式:该方式清空屏幕的内容后,再调用paint方式重画;paint,repaint及update方式是实现Applet中动画的三个主要函数,一般在update方式中调用g.clipRect方式规则paint的区域,这样paint方式只更新指定区域的内容; (8) 以上这些方式在必须的时候可以重载,并且不需要在我们的applet中显示的调用,可以自动执行(当然也可以显示调用); 3.4 Applet中的线程 在Applet中假如需要用到动画或者后台数据处理等需要占用大量资源的功能时,最好使用线程。以下是Applet中使用线程的简朴例子: import java.awt.Graphics; import java.util.Date; public class DigitalClock extends java.applet.Applet implements Runnable { Date theDate; Thread runner; public void start() { if (runner == null) { runner = new Thread(this); runner.start(); } } public void stop() { if (runner != null) { runner.stop(); runner = null; } } public void run() { while (true) { theDate = new Date(); repaint(); try { Thread.sleep(1000); } catch (InterruptedException e) { } } } public void paint(Graphics g) { g.drawString(theDate.toString(),10,50); }} 说明: (1) 要在applet支持线程,一般需要实现Runnable接口,所以在本例类的声明中加了implements Runnable; (2) 在Runable接口中定义了run()方式,当线程start时,会调用这个方式;所以需要实现该方式; (3) 要使用线程当然需要实例化类Thread(Thread是属于java.lang包):Thread runner = new Thread(this),这里的初始化参数this指定的applet对象; (4) 接下来在applet的start方式中调用runner.start()方式开始创建线程,线程创建完后,运行run方式; (5) 在run方式中实现真正要实现的内容,本例修改了theDate的值后,调用repaint方式,该方式的调用触发了paint方式的执行; (6) 在stop方式中结束线程的运行。 返回类别: 教程 上一教程: 对于初学者学习Java语言的建议 下一教程: 我的Thinking in Java学习笔记(十) 您可以阅读与"Java入门笔记2_Applet"相关的教程: · Java入门笔记4_访问控制和包 · Java入门笔记6_线程 · Java入门笔记5_非常 · Java入门笔记9_Socket · Java入门笔记3_Datastructure |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |