创建交互式Web程序
Java是第一款可以再Web浏览器上运行的编程语言。Applet是作为Web页面的一部分运行的Java程序。当在页面中遇到Java applet时,它将被下载到用户的计算机然后再开始运行,因此为了缩短下载时间,它们比大多数应用程序都要小。另外applet是在使用它的用户计算机上运行的,为阻止恶意或破坏行为的代码运行,对applet会有众多安全限制。
1、标准applet方法
创建applet的第一步是将其声明为JApplet的子类,后者位于Swing包javax.swing中。Applet被视为Web页面内的一个可见的窗口,因此JApplet与按钮、滚动条及其他用户界面组件一样,也是Swing的一部分。
你编写的applet在作为Web页面的一部分运行时,可以继续所需的所有属性和行为。在开始编写applet程序的语句之前,它们就能与Web浏览器交互、自我加载和卸载,并根据浏览器窗口的变化刷新其窗口以及处理其他必要的任务。
Java applet没有main()方法,因此无法设置程序的起点,但是它有一组标准方法,它们在applet运行时为响应特定事件而被调用。下面是可能导致applet方法被调用的事件:
>程序第一次加载时,applet的方法init()和start()被调用;
>当需要重新显示applet窗口时,applet的paint()方法被调用;
>浏览器停止运行程序时,applet的stop()方法被调用;
>程序停止后重新运行时,applet的start()方法被调用;
>程序运行完后卸载时,applet的destroy()方法被调用。
下面是applet的框架:
Public class test01 extendsjavax.swing.JApplet{
}
Applet类文件必须是public的,因为JApplet类也是public的(如果applet使用自定义类,则可以不声明为public)。Applet类继承所有必要时自动调用的方法:init()、start()、paint()、stop()、destroy()。但是这些方法什么也不做,需要我们重写写着方法。
1)、在applet窗口中绘画
Paint()方法用于在applet窗口中显示文本和图形。需要在applet窗口中显示或重新显示内容时(即浏览器或运行浏览器的操作系统有什么变化时,例如遮挡窗口关闭),将调用paint()方法。也可以使用repaint()方法强行调用paint()。
Public void paint(Graphics screen){
Graphics2D screen2D = (Graphics2D)screen;
}
Graphics类表示可在其中显示内容的环境。和Swing程序中一样,可以将其转换为Graphics2D对象,以实用Swing的图形功能。
2)、初始化applet
当applet运行时,将调用init()方法,而且只调用一次。所以这里是对applet成功运行所需的对象和变量进行设置的理想位置。该方法也是设置字体、颜色和屏幕背景色的理想位置,下面是一个例子:
public void init() {
FlowLayout layout = new FlowLayout();
setLayout(layout);
JButton button = new JButton("运行");
add(button);
}
3)、启动和停止applet
每当开始运行applet程序时,都将调用start()方法。当程序首次运行时,init()方法后面紧跟着start()方法。之后,只有当applet在某处停止执行,并需要启动时,才调用start()。
Applet停止执行时,将调用stop()方法。当用户从包含applet的Web页面离开并切换到其他页面时将发生该事件。直接在程序中调用stop()方法时,也会发生该事件。
4)、销毁applet
Destroy()方法与init()方法相反,仅当applet被完全关闭并结束运行前被调用。
2、将applet放到Web页面中
在Web页面中放置applet时,需要使用HTML,这是一种用来创建Web页面的标记语言。HTML可以将格式化文本、图像、声音和其他元素组合起来,并显示在Web浏览器中。关于HTML的标记和用法在这里就不说了,下面是一个将a1.jpg显示在页面上的例子:
<img src=”test/picture/a1.jpg”>
在applet的一个方法是使用applet标记和几个属性。下面的HTML标记将在一个页面上运行applet:
<applet code=”mytest01.class”codebase=”java.application.main”
height=”300” width=”400” align=”left”>
<p>抱歉,您的浏览器不支持java applet程序</p>
</applet>
>Code属性指定applet类的文件名,如果applet使用了多个类文件,code应指定作为JApplet子类的那个类;
>Codebase属性包含applet和相关文件所在的文件夹或子文件夹的路径。如果没有codebase属性,与applet相关的所有文件必须与包含applet的Web页面位于同一个文件夹中。上面的例子中可以在java/application/main文件夹中找到mytest01.class。
>Height和width指定applet窗口在Web页面中的大小,单位为像素。
>Align属性指定applet同页面中其他元素的相对关系,上面的例子是将applet放在相邻页面元素的左边。
3、创建applet
下面是程序是用applet程序显示字符串“Saluton mondo!”,这是传统的世界问候语。
public class NewJAppletextends JApplet {
String greeting;
public void init() {
greeting = "Saluton mondo!";
}
@Override
public void paint(Graphics g) {
Graphics2D g2D = (Graphics2D)g;
g2D.drawString(greeting, TOP_ALIGNMENT,TOP_ALIGNMENT);
}
1)、在applet窗口中绘画
使用Graphics2D类的drawString()方法在applet窗口中显示文本,该方法是在图形组件中绘制文本。
drawString(java.lang.Stringstr, float x, float y)
str:需要显示的文本
x:在(x,y)坐标系中要显示字符串的x位置
y:要显示字符串的y位置
applet的多个方法都使用了(x, y)坐标系,它以applet窗口的左上角为原点。当向右移动时x增大,向下移动时y增大。
2)、测试程序
由于Java applet没有main()方法,因此不能像应用程序那样运行。必须在包含applet的Web页面中添加标记。为了创建test01的Web页面示例,请按照下面的步骤在BetBeans中创建一个新的Web页面。
(1)、文件→新建文件,打开“新建文件”对话框:
(2)、从“类别”面板中选择“其他”,从“文件类型”中选择HTML文件,然后单击“下一步”按钮,将文件重命名,点击“完成”按钮
下面是测试代码:
<html>
<head>
<title>Saluton mondo!</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body bgcolor="#000000" text="#FF00FF">
<p>这是一个Java applet</p>
<applet
code="test01.class"
codebase="javaapplication1/test01.class"
height="150"
width="300">
<p>您的浏览器不支持Java Applet</p>
</applet>
</body>
</html>
保存后可以在Project面板右键单击你的HTML文件,选择视图,即可在浏览器中打开
4)、从Web页面传递参数
使用存储在HTML标记中的参数,可以自定义applet的功能,而且该参数的目的与应用程序中作为命令行输入的参数相同。
参数存储在包含applet的Web页面中,是通过HTML标记param及其练个属性name和value创建的。在applet中可以有多个param标记,但他们都必须位于标记<applet>和</applet>之间。下面是一个包含多个参数的applet标记:
<applet code=”test”height=”50”width=”400”>
<param name=”a1” value=”abcdefg”>
<param name=”a2” value=”hijklmn”>
<param name=”a3” value=”opqist”>
</applet>
上述代码可用于向applet发送新闻提要,该applet在屏幕上滚动显示这些新闻提要。由于新闻在不断变化,创建这种程序的位移办法是使用参数。
5)、在applet中接收参数
通过调用applet的getParameter(String)方法,可以访问applet中的参数,其中name属性指定的参数名作为上述方法中的参数,如下所示:
String name =getParameter(“heandline1”);
getParameter()方法将参数作为字符串返回,因此必要时必须将其转换为其他类型。如果要将返回的参数作为整型使用,可用如下语句:
int speed;
String speedParam= getParameter(“speed”);
If(speedParam !=null) {
speed = Integer.parseInt(speedParam);
}
这里使用speedParam字符串来设置整型变量speed的值。使用getParameter()方法检索参数,而该参数没有在网页中使用param标记指定时,getParameter()方法将返回null。
6)、在applet中处理参数
接下来要编写的applet程序将接受一个人的体重,并以不同的单位进行显示。该applet将接受两个参数:以磅为单位的体重,以及该体重对应的人名。体重用于计算用盎司、千克和吨为单位表示的体重,并将它们显示出来。
public classtest01 extends JApplet {
float lbs = 0f;
float ozs , kgs , metricTons;
String name = "somebody";
public void init() {
String lbsvalue =getParameter("weight");
if (lbsvalue != null) {
lbs = Float.valueOf(lbsvalue);
}
String personValue =getParameter("person");
if (personValue != null) {
name = personValue;
}
ozs = (float)(lbs * 16);
kgs = (float)(lbs / 2.204623);
metricTons = (float)(lbs / 2204.623);
}
@Override
public void paint(Graphics g) {
Graphics2D g2D = (Graphics2D)g;
g2D.drawString("Studying theweight of" + name, 5, 30);
g2D.drawString("In pounds:" +lbs, 55, 50);
g2D.drawString("In ounces:" + ozs,55, 70);
g2D.drawString("Inkilograms:" + kgs, 55, 90);
g2D.drawString("In metrictons:" + metricTons, 55, 110);
}
}
在测试applet之前,需要创建一个包含该applet的Web页面,创建方法同上,代码如下,然后在浏览器中将其打开,代码和结果如下:
<applet code="test01.class"codebase="..\\..\\build\\classes"
height="170"width="210">
<paramname="person" value="konishiki"/>
<paramname="weight" value="605"/>
</applet>
7)、使用object标记
在HTML5中加载入Java applet、Flash程序以及其他格式的交互式内容时,使用的不再是<applet>标记,而是<object>。与<applet>相同,该标记也有height和width属性,不过它还有另外一个类型的属性——application/x-java-applet,这是MIME为Java
applet设定的类型(MIEI类型对可以经由Internet传输的文件格式进行了分类)。下面是一个对象的格式示例:
<object type=”application/x-java-applet”height=”300”
width=”400”></object>
applet的code和codebase没有作为参数指定,相反,这两个参数被放置在<object>和</object>标记之间。
下面的HTML5标记可以显示一个applet:
<object type=”application/x-java-applet”height=”300” width=”400”>
<param name=”code” value=”stripYahtzee”/>
<param name=”codebase” value=”javadir”/>
<p>Sorry,no dice</p>
</object>
分享到:
相关推荐
JSP Web编程指南 JavaServer Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用...
Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...
Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...
Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...
Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
你将学习一切Rails scaffolding的基本原理,以创建自定义的交互式网络应用程序,全部使用Rails的一套丰富的工具和MVC框架。 你将掌握数据库交互、Ajax和XML的集成、丰富的内容,甚至数据的动态图形——曾经要使用...
Servlet(Server Applet),全称Java Servlet,未有中文...其主要功能在于交互式地浏览和修改数据,生成动态Web内容。 狭义的Servlet是指Java语言实现的一个 接口 ,广义的Servlet是指任何实现了这个Servlet接口的
你将学习一切Rails scaffolding的基本原理,以创建自定义的交互式网络应用程序,全部使用Rails的一套丰富的工具和MVC框架。 你将掌握数据库交互、Ajax和XML的集成、丰富的内容,甚至数据的动态图形——曾经要使用...
ASP是一种面向Web的服务器端脚本语言,用于构建动态、交互式的Web应用程序。这些项目源码基于ASP的强大功能和灵活性,旨在提供各种功能和解决方案。 这批ASP项目源码包括了多个功能丰富的Web应用程序,涵盖了各个...
ASP是一种面向Web的服务器端脚本语言,用于构建动态、交互式的Web应用程序。这些项目源码基于ASP的强大功能和灵活性,旨在提供各种功能和解决方案。 这批ASP项目源码包括了多个功能丰富的Web应用程序,涵盖了各个...
动态、交互式的操作方式。 JavaScript的作用: 交互式操作; 表单验证; 网页特效; Web游戏 服务器脚本开发等。 JavaScript的编写环境:文本编辑器 JavaScript的执行平台:Web浏览器 JavaScript的执行...
Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书恰好可以为你提供这方面的帮助。 本书读者对象 阅读...
您的投资组合中的其他项目将包括:将过滤器应用于图像的交互式网页、CSV 数据文件的分析、加密程序和预测文本生成器。 课程 JavaScript、HTML 和 CSS 编程基础 关于课程 学习基本的编程概念(例如,函数、for 循环、...
本书由畅销书《Java in a Nutshell》的作者David Flanagan撰写...JavaScript可以创建动态、交互式、基干Web的应用程序,而且所创建的应用程序可以在Web浏览器中完整地运行——因而,JavaScript是开发DHTML内容的最佳之
本书由畅销书《Java in a Nutshell》的作者David Flanagan...JavaScript可以创建动态、交互式、基干Web的应用程序,而且所创建的应用程序可以在Web浏览器中完整地运行——因而,JavaScript是开发DHTML内容的最佳之一。
第 1/27 页 Java 课程设计项目实例《基于微服务的在线签到》子系统 一、前言 作为智能考勤管理系统、会议管理系统等多种系统组成部分的"在线签到"子系统从 业务逻辑本身来看,并没有什么复杂性。不外乎是前端用户...