创建交互式Web程序
创建交互式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!”,这是传统的世界问候语。
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>