Applet 是一种 Java 程序。它一般运行在支持 Java 的 Web 浏览器内。因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程序。

Applet特点

  • Applet 类继承了 java.applet.Applet 类
  • Applet 类没有定义 main(),所以一个 Applet 程序不会调用 main() 方法
  • Applet 被设计为嵌入在一个 HTML 页面
  • 用户浏览含有Applet的HTML页面时,Applet代码会下载到电脑上
  • 查看Applet需要JVM,或者浏览器的一个插件,并调用Applet生命周期中的方法

Applet生命周期

applet中四个方法提供一个框架

  • init: 为 Applet 提供所需的初始化。在 Applet 标记内的 param 标签被处理后调用该方法。
  • start: 浏览器调用 init 方法后,该方法被自动调用。返回到含 Applet 的页面时,则调用该方法。
  • stop: 从含 Applet 的页面移除时,方法自动被调用。可以在相同的 Applet 中反复调用该方法
  • destroy: 仅当浏览器正常关闭时调用。
  • paint: 在 start() 方法调用之后立即被调用,或者在 Applet 需要重绘在浏览器的时候调用。paint() 方法实际上继承于 java.awt。

简单的applet程序:

import java.applet.*;  //导入applet包  必须要有的
import java.awt.*;public class HelloWorldApplet extends Applet  //继承Applet
{public void paint (Graphics g)       {g.drawString ("Hello World", 25, 50);}
}

Applet 类

基础的 Applet 类提供了供衍生类调用的方法

执行了以下事件:

  • 得到 Applet 的参数
  • 得到包含 Applet 的 HTML 文件的网络位置
  • 得到 Applet 类目录的网络位置
  • 打印浏览器的状态信息
  • 获取一张图片
  • 获取一个音频片段
  • 播放一个音频片段
  • 调整此 Applet 的大小

Applet 类提供了一个接口  Viewer:

  • 请求 Applet 作者、版本和版权的信息
  • 请求 Applet 识别的参数的描述
  • 初始化 Applet
  • 销毁 Applet
  • 开始执行 Applet
  • 结束执行 Applet

必要的时候对方法进行重写。

Applet 的调用

Applet 是一个全功能的 Java 应用程序。

<html>
<title>The Hello, World Applet</title>
<hr>
<applet code="HelloWorldApplet.class" width="320" height="120">  <!-- width 和 height 用来指定 Applet 运行面板的初始大小--></applet>
<hr>
</html>
  • HTML文件中嵌入 Applet
  • Applet的参数的值需要在 <param> 标签里添加
  • 不支持 Java 的浏览器不能执行 <applet> 和 </applet>。因此,在标签之间显示并且和 applet 没有关系的任何东西,在不支持的 Java 的浏览器里是可见的。
  • codebase用来指定属性
<applet codebase="http://amrood.com/applets"
code="HelloWorldApplet.class" width="320" height="120">

获得applet参数

import java.applet.*;
import java.awt.*;
public class CheckerApplet extends Applet
{int squareSize = 50;// 初始化默认大小public void init () {}private void parseSquareSize (String param) {}private Color parseColor (String param) {}public void paint (Graphics g) {}
}//CheckerApplet 类的 init() 方法
public void init ()
{String squareSizeParam = getParameter ("squareSize");parseSquareSize (squareSizeParam);String colorParam = getParameter ("color");Color fg = parseColor (colorParam);setBackground (Color.black);setForeground (fg);
}
//私有的 parseSquareSize() 方法
private void parseSquareSize (String param)
{if (param == null) return;try {squareSize = Integer.parseInt (param);}catch (Exception e) {// 保留默认值System.out.println(e.getMessage); }
}

指定 applet 参数

<html>
<title>Checkerboard Applet</title>
<hr>
<applet code="CheckerApplet.class" width="480" height="320">
<param name="color" value="blue"><!--通过使用 <param> 标签的方法给 applet 指定了两个参数。-->
<param name="squaresize" value="30">
</applet>
<hr>
</html>

事件处理

Applet 类从 Container 类继承了许多事件处理方法,processKeyEvent() 和processMouseEvent(),用来处理特别类型的事件, processEvent()捕获所有事件的方法.

import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.applet.Applet;
import java.awt.Graphics;public class ExampleEventHandling extends Appletimplements MouseListener {StringBuffer strBuffer;public void init() {addMouseListener(this);strBuffer = new StringBuffer();addItem("initializing the applet ");}public void start() {addItem("starting the applet ");}public void stop() {addItem("stopping the applet ");}public void destroy() {addItem("unloading the applet");}void addItem(String word) {System.out.println(word);strBuffer.append(word);repaint();}public void paint(Graphics g) {g.drawRect(0, 0, getWidth() - 1,getHeight() - 1);g.drawString(strBuffer.toString(), 10, 20);}public void mouseEntered(MouseEvent event) {}public void mouseExited(MouseEvent event) {}public void mousePressed(MouseEvent event) {}public void mouseReleased(MouseEvent event) {}public void mouseClicked(MouseEvent event) {addItem("mouse clicked! ");}
}
<html>  <!--调用上面事件的applet-->
<title>Event Handling</title>
<hr>
<applet code="ExampleEventHandling.class"
width="300" height="300">
</applet>
<hr>
</html>

显示图片

使用 java.awt.Graphics 类的drawImage()方法。

import java.applet.*;
import java.awt.*;
import java.net.*;
public class ImageDemo extends Applet
{private Image image;private AppletContext context;public void init(){context = this.getAppletContext();String imageURL = this.getParameter("image");if(imageURL == null){imageURL = "java.jpg";}try{URL url = new URL(this.getDocumentBase(), imageURL);image = context.getImage(url);}catch(MalformedURLException e){e.printStackTrace();context.showStatus("Could not load image!");}}public void paint(Graphics g){context.showStatus("Displaying image");g.drawImage(image, 0, 0, 200, 84, null);g.drawString("www.javalicense.com", 35, 100);}
}

调用图片applet

<html>
<title>The ImageDemo applet</title>
<hr>
<applet code="ImageDemo.class" width="300" height="200">
<param name="image" value="java.jpg">
</applet>
<hr>
</html>

播放音频

Applet 能通过使用 java.applet 包中的 AudioClip 接口播放音频。AudioClip 接口定义了三个方法:

  • public void play(): 从一开始播放音频片段一次。
  • public void loop(): 循环播放音频片段
  • public void stop(): 停止播放音频片段

为了得到 AudioClip 对象,必须调用 Applet 类的 getAudioClip() 方法。

import java.applet.*;
import java.awt.*;
import java.net.*;
public class AudioDemo extends Applet
{private AudioClip clip;private AppletContext context;public void init(){context = this.getAppletContext();String audioURL = this.getParameter("audio");if(audioURL == null){audioURL = "default.au";}try{URL url = new URL(this.getDocumentBase(), audioURL);clip = context.getAudioClip(url);}catch(MalformedURLException e){e.printStackTrace();context.showStatus("Could not load audio file!");}}public void start(){if(clip != null){clip.loop();}}public void stop(){if(clip != null){clip.stop();}}
}

调用音频applet

<html>
<title>The ImageDemo applet</title>
<hr>
<applet code="ImageDemo.class" width="0" height="0">
<param name="audio" value="test.wav">
</applet>
<hr>

Java Applet相关推荐

  1. java applet 官网_java applet

    java applet[编辑] 概述 JavaApplet就是用Java语言编写的小应用程序,可以直接嵌入到网页中,并能够产生特殊的效果. 介绍 Java Applet就是用Java语言编写的一些小应 ...

  2. java applet js_jsp嵌入java-applet,实现js调用web服务器程序

    1.applet介绍 Applet是一种Java的小程序,它通过使用该Applet的HTML文件,由支持Java的网页浏览器下载运行. 2.编写一个applet类 import java.applet ...

  3. Java Applet 基础

    Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java ...

  4. JAVA教程 第六讲 Java的线程和Java Applet(二)

    6.3 Java Applet 前面的章节我们阐述了Application的应用,这一讲我们将介绍java的另一类应用java Applet,即java小应用程序. 在Java问世的头几年里,之所以如 ...

  5. Java网页小程序——Java Applet

    Java Applet是编译过的Java程序,可以在所有支持Java的浏览器中运行. 1.Applet的使用 import java.applet.Applet; import java.awt.Gr ...

  6. java applet配置_配置Java Applet的运行环境

    Java小程序,也就是Java Applet,可以在Web浏览器中运行.Java Applet必须以脚本的形式嵌入到HTML页面中,才能在web浏览器中运行. 之前总以为本地安装了JDK,指定好JAV ...

  7. java applet 游戏_Java Applet实现五子棋游戏

    从谷歌的AlphaGo到腾讯的绝艺,从人脸识别到无人驾驶,从谷歌眼镜到VR的兴起,人工智能领域在不断的向前迈进,也在不断深入的探索.但背后错综复杂的技术和利益成本也是很多企业亟待解决的难题.对于人工智 ...

  8. java js隐藏_Javascript匿名函数是否仍然可见? (使用Java applet,这是一种隐藏JS代码的方法)...

    我正在使用Javascript编写应用程序.我正在寻找一种隐藏代码的方法,我想我已经找到了一个使用Java Applet的代码. 无论如何,我认为只有在评估js匿名函数的代码后仍然无法以任何方式访问它 ...

  9. java applet 文本框_Java Applet 文本框 TextField 小例 | 学步园

    一个Java Applet程序中必须有一个类是Applet类的子类,成为该子类是Java Applet的主类, 并且必须 是public class. Applet类是包java.applet中的一个 ...

  10. Java如何控制用户输入的长度,用Java Applet 进行Web编程时,如何限制输入域中可输入字符的长度!解决后马上给分!!!...

    用Java Applet 进行Web编程时,如何限制输入域中可输入字符的长度!解决后马上给分!!! | create a new class FixLengthDocument extends Pla ...

最新文章

  1. Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析
  2. LwIP 之三 操作系统隔离接口 sys_arch
  3. strcpy完整版 与 strcpy为什么有返回值
  4. html中怎么远程控制小车,利用ESP8266远程控制小车 求大佬帮忙加段程序
  5. WinSock API相关函数
  6. PCIE设备与HOST之间的地址转换
  7. 台湾php解谜游戏,米诺陶(Minotaur):赛博朋克点击式解谜冒险类游戏
  8. asp.net session 超时设置
  9. Linux driver读书笔记(2) - Bus Types总线类型(mybus/mydevice/mydriver实例)
  10. idea 背景图插件
  11. 轻松获奖五一数学建模和蓝桥杯
  12. Grafana——》重置默认的登录密码
  13. About 速溶咖啡
  14. 在钉钉小程序中实现录音和播放功能实例
  15. 手机断触怎么办_手机屏幕断触怎么办?弹片微针模组解决手机屏幕测试难题
  16. SQL审核 | SQLE 二次开发环境搭建
  17. 手机QQ2008下载地址
  18. OAuth认证(完整版)
  19. HJ15 求int型正整数在内存中存储时1的个数(c++)
  20. 深圳正规的现货白银交易平台

热门文章

  1. c语言16进制与字符串互转,C语言版的16进制与字符串互转函数
  2. python继承封装多态简单理解_Python面向对象编程:封装、继承、多态(基础篇十)...
  3. python自回归模型_21向量自回归模型
  4. Principle 5.14 完美汉化版 Mac平台交互动效设计神器
  5. CentOS7镜像安装与下载
  6. Lifo管理系统(转载)
  7. 2022年最新四川建筑八大员(劳务员)模拟题库及答案
  8. 广电为什么禁止投屏_广电网络不能投屏 怎么投屏到电视上
  9. ES6/7 + Babel 编译器-郭永峰-专题视频课程
  10. 中国医院评审/评级标准及区别和特点