JavaApplet基础Applet是一个Java程序。它通常在支持Java的Web浏览器中运行。由于具有完整的JavaAPI支持,Applet是一个功能齐全的Java应用程序。独立的Java应用程序和applet程序的重要区别如下:Java中的Applet类继承了java.applet.Applet类。Applet类没有定义main(),因此Applet程序不会调用main()方法。Applet旨在嵌入HTML页面中。当用户浏览包含Applet的HTML页面时,Applet的代码将下载到用户的机器上。查看Applet需要JVM。JVM可以是Web浏览器的插件,也可以是独立的运行时环境。用户机器上的JVM创建Applet类的实例,并在Applet生命周期中调用各种方法。Applet具有由Web浏览器强制执行的严格安全规则,Applet的安全机制称为沙箱安全。applet所需的其他类可以作为Java存档(JAR)文件下载。Applet的生命周期Applet类中的四个方法为我们提供了一个框架,您可以在其上开发applet:init:此方法的目的是提供Applet所需的任何初始化。该方法在Applet标签内的param标签处理完成后调用。start:浏览器调用init方法后自动调用该方法。每当用户从另一个页面返回到包含小程序的页面时,都会调用此方法。stop:当用户退出包含Applet的页面时自动调用此方法。因此,该方法可以在同一个小程序中重复调用。destroy:只有在浏览器正常关闭时才会调用该方法。因为小程序只能在HTML页面上使用,所以在用户离开包含小程序的页面后,您不应该错过任何资源。paint:该方法在start()方法之后立即被调用,或者当Applet需要在浏览器中重绘时被调用。paint()方法实际上是继承自java.awt。《你好,世界》Applet:下面是一个简单的Applet程序HelloWorldApplet.java:HelloWorldApplet.java文件代码:importjava.applet.*;importjava.awt.*;publicclassHelloWorldAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString("HelloWorld",25,50);}}这些导入语句将以下类导入我们的Applet类:java.applet.Applet.java.awt.Graphics。如果没有这些import语句,Java编译器将无法识别Applet和Graphics类。Applet类每个Applet都是java.applet.Applet类的子类。Applet基础类提供方法供派生类调用,以获取浏览器上下文信息和服务。这些方法做以下事情:获取Applet的参数获取包含Applet的HTML文件的网络位置获取Applet类目录的网络位置打印浏览器的状态信息获取图片获取音频剪辑播放音频clip调整Applet的大小此外,Applet类还提供了一个接口,供Viewer或浏览器获取Applet的信息,控制Applet的执行。Viewer可能是:请求Applet作者、版本、版权信息请求Applet识别的参数说明初始化Applet销毁Applet开始执行Applet结束执行Applet类提供了这些方法的默认实现,需要时可以重写。“Hello,World”小程序是按照标准编写的。唯一被覆盖的方法是paint方法。调用AppletApplet是一个Java程序。它通常在支持Java的Web浏览器中运行。因为它具有完整的JavaAPI支持,所以Applet是一个全功能的Java应用程序。
注意:您可以参考HTMLApplet标签了解有关从HTML小程序调用方法的更多信息。标记关闭小程序。如果Applet接受参数,需要在之间的标签中添加参数的值。浏览器忽略小程序标签之间的文本和其他标签。不支持Java的浏览器无法执行。因此,在标签之间显示的与小程序无关的任何内容在不支持Java的浏览器中都是可见的。查看器或浏览器在文档的位置查找已编译的Java代码。要指定文档的路径,请使用
注意:参数名称不区分大小写。应用程序到Applet将图形化的Java应用程序(即使用AWT的应用程序和使用java程序启动器启动的程序)转换成嵌入网页的applet是非常简单的。以下是将应用程序转换为Applet的步骤:编写带有加载applet代码的标记的HTML页面。编写JApplet类的子类,使该类公开。否则,无法加载Applet。消除应用程序的main()方法。不要为应用程序构建框架窗口,因为您的应用程序将显示在浏览器中。将应用程序中框架窗口的构造方法中的初始化代码移动到Applet的init()方法中。您不必显式构造Applet对象。浏览器将通过调用init()方法实例化一个对象。删除对setSize()方法的调用。对于Applets,大小已由HTML文件中的宽度和高度参数设置。删除对setDefaultCloseOperation()方法的调用。Applet无法关闭,它会随着浏览器退出而终止。如果应用程序调用setTitle()方法,则消除对该方法的调用。小程序不能有标题栏。(当然也可以通过html的title标签自己命名网页)不要调用setVisible(true),Applet是自动显示的。事件处理Applet类从Container类继承了许多事件处理方法。Container类定义了几个方法,如:processKeyEvent()和processMouseEvent(),用于处理特殊类型的事件,还有一个捕获所有事件的方法叫做processEvent。为了响应事件,Applet必须覆盖适当的事件处理方法。ExampleEventHandling.java文件代码:importjava.awt.event.MouseListener;importjava.awt.event.MouseEvent;importjava.applet.Applet;importjava.awt.Graphics;publicclassExampleEventHandlingextendsAppletimplementsMouseListener{StringBufferstrBuffer;publicvoidinit(){addMouseListener(this);strBuffer=新的StringBuffer();addItem("正在初始化小程序");}publicvoidstart(){addItem("启动小程序");}publicvoidstop(){addItem("停止小程序");}publicvoiddestroy(){addItem("卸载小程序");}voidaddItem(Stringword){System.out.println(word);strBuffer.append(word);重绘();}publicvoidpaint(Graphicsg){//在小程序的显示区域周围绘制一个矩形。g.drawRect(0,0,getWidth()-1,getHeight()-1);//显示矩形内的字符串。g.drawString(strBuffer.toString(),10,20);}publicvoidmouseEntered(MouseEventevent){}publicvoidmouseExited(MouseEventevent){}publicvoidmousePressed(MouseEventevent){}publicvoidmouseReleased(MouseEventevent){}publicvoidmouseClicked(MouseEventevent){addItem("点击鼠标!”);}}按如下方式调用Applet:
第一次运行,Applet显示“initializingtheapplet.Startingtheapplet.”,当你点击矩形时,会显示“mouseclicked”DisplayImageApplet可以显示GIF、JPEG、BMP等格式的图片格式。为了在Applet中显示图片,需要使用java.awt.Graphics类的drawImage()方法。下面的例子演示了显示图像的所有步骤:ImageDemo.java文件代码:importjava.applet.*;importjava.awt.*;importjava.net.*;publicclassImageDemoextendsApplet{privateImageimage;私有AppletContext上下文;publicvoidinit(){context=this.getAppletContext();StringimageURL=this.getParameter("图像");if(imageURL==null){imageURL="java.jpg";}try{URLurl=newURL(this.getDocumentBase(),imageURL);图片=context.getImage(url);}catch(MalformedURLExceptione){e.printStackTrace();//在浏览器状态栏中显示context.showStatus("Couldnotloadimage!");}}publicvoidpaint(Graphicsg){context.showStatus("显示图像");g.drawImage(图像,0,0,200,84,null);g.drawString("www.javalicense.com",35,100);}}按如下方式调用小程序:
PlayAudioApplet可以使用java.applet包中的AudioClip接口来播放音频。AudioClip接口定义了三个方法:publicvoidplay():从头播放一次音频片段。publicvoidloop():循环播放音频片段publicvoidstop():停止播放音频片段为了获得AudioClip对象,必须调用Applet类的getAudioClip()方法。此方法立即返回,无论URL是否指向实际的音频文件。直到播放时才下载音频文件。下面实例演示了播放音频的所有步骤:AudioDemo.java文件代码:importjava.applet.*;importjava.awt.*;importjava.net.*;publicclassAudioDemoextendsApplet{privateAudioClipclip;私有AppletContext上下文;publicvoidinit(){context=this.getAppletContext();StringaudioURL=this.getParameter("音频");如果(audioURL==null){audioURL=“default.au”;}try{URLurl=newURL(this.getDocumentBase(),audioURL);clip=context.getAudioClip(url);}catch(MalformedURLExceptione){e.printStackTrace();context.showStatus("无法加载音频文件!");}}publicvoidstart(){if(clip!=null){clip.loop();}}publicvoidstop(){if(clip!=null){clip.stop();}}}如下调用applet:
你可以在你的电脑上使用test.wav来测试上面的例子