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

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>

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值