??xml version="1.0" encoding="utf-8" standalone="yes"?> (一) AppletE序开发步?BR> AppletE序开发主要步骤如下:
2)字节码文件的地址
3)在网上昄Applet的方式?BR> 一个HTML文g增加Applet有关的内容只是ɾ|页更加富有生气Q如d声音、动ȝq些吸引人的特征Q它q不会改变HTML文g中与Applet无关的元素?
1)选用EDIT或Windows Notepad{工具作为编辑器建立Java Applet源程序?BR> 2)把Applet的源E序转换为字节码文g?BR> 3)~制使用class 的HTML文g。在HTML文g内放入必要的<APPLET>语句?BR> 下面举一个最单的HelloWorld 例子来说明AppletE序的开发过E:
(1) ~辑Applet 的java源文?BR> 创徏文g夹C:\ghqQ在该文件夹下徏?HelloWorld.java
文g的源代码如下Q?nbsp;
import java.applet.*;
public class HelloWorld extends Applet //l承Appeletc,q是Appelet JavaE序的特?/SPAN>
{
public void paint(Graphics g )
{
g.drawString("Hello World!",5,35)Q?BR> }
}
保存上述E序在C:\ghq\HelloWorld.java文g里?BR> (2)~译Applet
~译HelloWorld.java源文件可使用如下JDK命oQ?/P>
C:\ghq\>javac HelloWorld.java<Enter>
注意Q如果编写的源程序违反了Java~程语言的语法规则,Java~译器将在屏q上昄语法错误提示信息。源文g中必M含Q何语法错误,Java~译器才能成功地把源E序转换为appletviewer和浏览器能够执行的字节码E序?BR> 成功地编译Java applet之后生成响应的字节码文gHelloWorld.class的文件。用资源理器或DIR命o列出目录列表Q将会发现目录C:\ghq中多了一个名为HelloWorld.class的文件?BR> (3)创徏HTML文g
在运行创建的HelloWorld.class 之前Q还需创徏一个HTML文gQappletviewer或浏览器通过该文件访问创建的Applet。ؓq行HelloWorld.class, 需要创建包含如下HTML语句的名为HelloWorld.html的文件?BR>
本例中,<APPLET>语句指明该Applet字节码类文g名和以像素ؓ单位的窗口的寸。虽然这里HTML文g使用的文件名为HelloWorld.HTMLQ它对应于HelloWorld.java的名字,但这U对应关pM是必ȝQ可以用其他的Q何名?比如说Ghq.HTML)命名该HTML文g。但是文g名保持一U对应关pdl文件的理带来方便?BR> (4)执行 HelloWorld.html
如果用appletviewerq行HelloWorld.html,需输入如下的命令行Q?/P>
C:\ghq\>appletviewer JavaWorld.html<ENTER> |
(? Appletc?BR> AppletcL所有Applet应用的基c,所有的Java应用程序都必须l承该类。如下所C?BR> Appletcȝ构造函数只有一U,卻Ipublic Applet()
Applet实现了很多基本的Ҏ(gu)Q下面列ZAppletcM常用Ҏ(gu)和用途?BR>
(1) Appletq行状态控制基本方?BR> AppletcM的四U基本方法用来控制其q行状态:init()、start()、stop()、destroy()
init()Ҏ(gu)
q个Ҏ(gu)主要是ؓApplet的正常运行做一些初始化工作。当一个Applet被系l调用时Q系l首先调用的是该方法。通常可以在该Ҏ(gu)中完成从|页向Applet传递参敎ͼd用户界面的基本组件等操作?BR> start()Ҏ(gu)
pȝ在调用完init()Ҏ(gu)之后Q将自动调用start()Ҏ(gu)。而且Q每当用L(fng)开包含该Applet的主后又再q回Ӟpȝ又会再执行一遍start()Ҏ(gu)。这意味着start()Ҏ(gu)可以被多ơ执行,而不像init()Ҏ(gu)。因此,可把只希望执行一遍的代码攑֜init()Ҏ(gu)中。可以在start()Ҏ(gu)中开始一个线E,如l一个动甅R声音等?BR> stop()Ҏ(gu)
q个Ҏ(gu)在用L(fng)开Applet所在页面时执行Q因此,它也是可以被多次执行的。它使你可以在用户ƈ不注意Applet的时候,停止一些耗用pȝ资源的工作以免媄响系l的q行速度Q且q不需要h为地去调用该Ҏ(gu)。如果Applet中不包含动画、声音等E序Q通常也不必实现该Ҏ(gu)?BR> destroy()Ҏ(gu)
与对象的finalize()Ҏ(gu)不同QJava在浏览器关闭的时候才调用该方法。Applet是嵌在HTML文g中的Q所以destroty()Ҏ(gu)不关心何时Applet被关闭,它在览器关闭的时候自动执行。在destroy()Ҏ(gu)中一般可以要求收回占用的非内存独立资源?如果在Applet仍在q行时浏览器被关闭,pȝ先执行stop()Ҏ(gu)Q再执行destroy()Ҏ(gu)?BR>下面一个程序可以更好的帮助我们理解Java Applet在整个生命周期是如何调用上面我们介绍的几个方法的?BR> 文g?StartStop.java
(2) Applet应用的有兛_数说?BR> 利用Applet来接收从HTML中传递过来的参数,下面对这些参C一单说明:
* CODE标志
CODE标志指定Applet的类名;WIDTH和HEIGHT标志指定AppletH口的像素尺寸。在APPLET语句里还可用其他一些标志?BR> * CODEBASE 标志
CODEBASE标志指定Applet的URL地址。Applet的通用资源定位地址URLQ它可以是绝对地址 Q如www.sun.com。也可以是相对于当前HTML所在目录的相对地址Q如/AppletPath/Name。如果HTML文g不指定CODEBASE 标志Q浏览器用和HTML文g相同的URL?BR> * ALT 标志
虽然Java在WWW上很受欢q,但ƈ非所有浏览器都对其提供支持。如果某览器无法运行Java AppletQ那么它在遇到APPLET语句时将昄ALT标志指定的文本信息?BR> * ALIGN 标志
ALIGN标志可用来控制把AppletH口昄在HTML文档H口的什么位|。与HTML<LMG>语句一PALIGN标志指定的值可以是TOP、MIDDLE或BOTTOM?BR> * VSPACE与HSPACE 标志
VSPACE和HSPACE标志指定览器显C在AppletH口周围的水q_竖直I白条的寸Q单位ؓ像素。如下例使用该标志在AppletH口之上和之下各留出50像素的空白,在其左和其右各留?5像素的空白:
* NAME 标志
NAME标志把指定的名字赋予Applet的当前实例。当览器同时运行两个或多个AppletӞ各Applet可通过名字怺引用或交换信息。如果忽略NAME标志QApplet的名字将对应于其cd?BR> * PARAM 标志
通用性是E序设计所q求的目标之一。用户或者程序员能很方便C用同一个Applet完成不同的Q务是通用性的具体表现。从HTML文g获取信息是提高Applet通用性的一条有效途径?BR> 假设~制了一个把某公司的名字在屏q上卷动的Applet。ؓ了该Applet更加通用Q则可以使该Applet从HTML文g获取需要卷动的文本信息。这P若想昄另一个公司的名字Q用不着修改Java Applet本nQ只需修改HTML文g卛_?BR> PARAM 标志可用来在HTML文g里指定参敎ͼ格式如下所C:
PARAM Name="name" Value="Liter"
Java Applet可调用getParameterҎ(gu)获取HTML文g里设|的参数倹{?BR>然而,JDKq不是可视化的RAD(rapid application development)开发工P对于对象的用不能如Delphi那样只需要拖拉,UM可以,而需要我们写调用代码.q就产生了一个麻烦,我怎么h能够让元素按我的要求在界面中摆放?在元素不多时可以让Java自动布局QLayout)Q但是元素很多时Q或者需要根据应用程序的要求来摆攑օ素时Q就需要用面板了(Panel).面板在Delphi里也有相应的lg(TPanel)Q但主要是用来对界面分割Q进行粗略的布局的,_的定位还需要开发h员手动调?而Java则只能用Panel来定位,不能不说是个~陷.也许是我q没学到吧?BR>
入门之后Q就该深入到对象的概念了?BR> 假设在Java中创Z一个叫做Date的自定义数据cd如下
public class Date{ int day; int month; int year; } |
(1) int i; (2) Date mybirth; (3) Date mybirth=new Date(); |