`
bcyy
  • 浏览: 1825951 次
文章分类
社区版块
存档分类
最新评论

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>

分享到:
评论

相关推荐

    JSP Web 编程指南

    JSP Web编程指南 JavaServer Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用...

    JSP Web编程指南(pdf版)

    Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...

    JSP Web编程指南 part1

    Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...

    JSP Web编程指南 part3

    Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...

    JSP Web编程指南 part2

    Javaserver Pages(JSP)是一种基于Java程序语言创建交互式的、动态Web站点的技术。本书从基础开始,先讲述JSP的概念、如何存储数据和执行简单的计算;接着介绍JSP的新功能——标签库和Java最有用的特征——面向对象;...

    JAVA上百实例源码以及开源项目源代码

     用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例  Message-Driven Bean EJB实例源代码,演示...

    JAVA上百实例源码以及开源项目

     用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例  Message-Driven Bean EJB实例源代码,演示...

    交互式计算机图形学——基于WebGL的自顶向下方法(第七版)的例子与练习题.zip

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...

    HeadFirst系列之:深入浅出Rails(中文版)高清完整PDF

    你将学习一切Rails scaffolding的基本原理,以创建自定义的交互式网络应用程序,全部使用Rails的一套丰富的工具和MVC框架。 你将掌握数据库交互、Ajax和XML的集成、丰富的内容,甚至数据的动态图形——曾经要使用...

    JavaWeb——Servlet.docx

    Servlet(Server Applet),全称Java Servlet,未有中文...其主要功能在于交互式地浏览和修改数据,生成动态Web内容。 狭义的Servlet是指Java语言实现的一个 接口 ,广义的Servlet是指任何实现了这个Servlet接口的

    深入浅出Rails(中文版)

    你将学习一切Rails scaffolding的基本原理,以创建自定义的交互式网络应用程序,全部使用Rails的一套丰富的工具和MVC框架。 你将掌握数据库交互、Ajax和XML的集成、丰富的内容,甚至数据的动态图形——曾经要使用...

    ASP网络考试系统的设计与实现——阅卷子系统.zip

    ASP是一种面向Web的服务器端脚本语言,用于构建动态、交互式的Web应用程序。这些项目源码基于ASP的强大功能和灵活性,旨在提供各种功能和解决方案。 这批ASP项目源码包括了多个功能丰富的Web应用程序,涵盖了各个...

    ASP基于USB KEY文件密工具——USB key管理系统.zip

    ASP是一种面向Web的服务器端脚本语言,用于构建动态、交互式的Web应用程序。这些项目源码基于ASP的强大功能和灵活性,旨在提供各种功能和解决方案。 这批ASP项目源码包括了多个功能丰富的Web应用程序,涵盖了各个...

    DHTML&javascript 使用手册

    动态、交互式的操作方式。 JavaScript的作用: 交互式操作; 表单验证; 网页特效; Web游戏 服务器脚本开发等。 JavaScript的编写环境:文本编辑器 JavaScript的执行平台:Web浏览器 JavaScript的执行...

    Android程序设计基础

     Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书恰好可以为你提供这方面的帮助。  本书读者对象  阅读...

    java笔试题算法-java-programming-and-software-engineering-fundamentals:杜克大学提供

    您的投资组合中的其他项目将包括:将过滤器应用于图像的交互式网页、CSV 数据文件的分析、加密程序和预测文本生成器。 课程 JavaScript、HTML 和 CSS 编程基础 关于课程 学习基本的编程概念(例如,函数、for 循环、...

    Javascript权威指南

    本书由畅销书《Java in a Nutshell》的作者David Flanagan撰写...JavaScript可以创建动态、交互式、基干Web的应用程序,而且所创建的应用程序可以在Web浏览器中完整地运行——因而,JavaScript是开发DHTML内容的最佳之

    JavaScript权威指南(第6版)中文版.pdf

    本书由畅销书《Java in a Nutshell》的作者David Flanagan...JavaScript可以创建动态、交互式、基干Web的应用程序,而且所创建的应用程序可以在Web浏览器中完整地运行——因而,JavaScript是开发DHTML内容的最佳之一。

    Java课程设计项目实例《基于微服务的在线签到》子系统.pdf

    第 1/27 页 Java 课程设计项目实例《基于微服务的在线签到》子系统 一、前言 作为智能考勤管理系统、会议管理系统等多种系统组成部分的"在线签到"子系统从 业务逻辑本身来看,并没有什么复杂性。不外乎是前端用户...

Global site tag (gtag.js) - Google Analytics