??xml version="1.0" encoding="utf-8" standalone="yes"?>国产免费观看久久黄,无线免费在线视频,在线播放精品http://www.aygfsteel.com/yesjoy/articles/29968.html★yesjoy?/dc:creator>★yesjoy?/author>Wed, 08 Feb 2006 13:32:00 GMThttp://www.aygfsteel.com/yesjoy/articles/29968.htmlhttp://www.aygfsteel.com/yesjoy/comments/29968.htmlhttp://www.aygfsteel.com/yesjoy/articles/29968.html#Feedback0http://www.aygfsteel.com/yesjoy/comments/commentRss/29968.htmlhttp://www.aygfsteel.com/yesjoy/services/trackbacks/29968.html  当用戯问这L(fng)|页ӞApplet被下载到用户的计机上执行,但前提是用户使用的是支持Java的网l浏览器。由于Applet是在用户的计机上执行的Q所以它的执行速度不受|络带宽或者Modem存取速度的限Ӟ用户可以更好地欣赏网上Applet产生的多媒体效果?BR>  Applet 应用程序的实现主要依靠java.applet 包中的AppletcR与一般的应用E序不同QApplet应用E序必须嵌入在HTML面中,才能得到解释执行Q同时Applet可以从Web面中获得参敎ͼq和W(xu)eb面q行交互?BR>  含有Applet的网늚HTML文g代码中必d?lt;applet>?lt;/applet>q样一Ҏ(gu)讎ͼ当支持Java的网l浏览器遇到q对标记Ӟ将下蝲相应的小E序代码q在本地计算Z执行该Applet程序?BR>  Applet是一UJava的小E序Q它通过使用该Applet的HTML文gQ由支持Java的网|览器下蝲q行。也可以通过java开发工L(fng)appletviewer来运行。Applet E序M开使用它的HTML文g。这个HTML文g中关于Applet的信息至应包含以下三点Q?BR>  1)字节码文件名(~译后的Java文gQ以.class为后~)
  2)字节码文件的地址
  3)在网上昄Applet的方式?BR>  一个HTML文g增加Applet有关的内容只是ɾ|页更加富有生气Q如d声音、动ȝq些吸引人的特征Q它q不会改变HTML文g中与Applet无关的元素?

  (一) AppletE序开发步?BR>  AppletE序开发主要步骤如下:
  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.awt.*;
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>

<HTML>
<TITLE>HelloWorld! Applet</TITLE>
<APPLET
CODE="HelloWorld.class"
WIDTH
=200
HEIGHT=100>
</APPLET>
</HTML> 

  本例中,<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>

  可以看出Q该命o启动了appletviewerq指明了HTML文gQ该HTML文g中包含对应于HelloWorld ?lt;APPLET>语句?BR>  如果用浏览器q行HelloWorld Applet,需在浏览器的地址栏中输入HTML文gURL地址?BR>  xQ一个AppletE序的开发运行整个过E结束了(包括java源文件、编译的class文g、html文g以及用appletviewer或用览器运??/P>

  (? Appletc?BR>  AppletcL所有Applet应用的基c,所有的Java应用程序都必须l承该类。如下所C?BR>  Appletcȝ构造函数只有一U,卻Ipublic Applet()
  Applet实现了很多基本的Ҏ(gu)Q下面列ZAppletcM常用Ҏ(gu)和用途?BR>

public final void setStub(AppletStub stub)
//讄Applet的stub.stub是Java和C之间转换参数q返回值的代码位,它是ql自动设定的?/SPAN>
public boolean isActive();// 判断一个Applet是否处于zd状态?/SPAN>
public URL getDocumentBase();// 索表CAppletq行的文件目录的对象?/SPAN>
public URL getCodeBase();// 获取该Applet 代码的URL地址?/SPAN>
public String getParameter(String name)Q?/SPAN>// 获取该Applet 由name指定参数的倹{?/SPAN>
public AppletContext getAppletContext()Q?/SPAN>// q回览器或应用程序观察器?/SPAN>
public void resize(int width,int height)Q?/SPAN>// 调整Appletq行的窗口尺寸?/SPAN>
public void resize(Dimension d)Q?/SPAN>// 调整Appletq行的窗口尺寸?/SPAN>
public void showStatus(String msg)Q?/SPAN>// 在浏览器的状态条中显C指定的信息?/SPAN>
public Image getImage(URL url)Q?nbsp;// 按url指定的地址装入图象?/SPAN>
public Image getImage(URL url,String name)Q?/SPAN>// 按url指定的地址和文件名加蝲囑փ?/SPAN>
public AudioClip getAudioClip(URL url)Q?/SPAN>// 按url指定的地址获取声音文g?/SPAN>
public AudioClip getAudioClip(URL url, String name)Q?/SPAN>// 按url指定的地址和文件名获取声音?/SPAN>
public String getAppletInfo()Q?/SPAN>// q回Applet应用有关的作者、版本和版权斚w的信息;
public String[][] getParameterInfo()Q?BR>// q回描述Applet参数的字W串数组Q该数组通常包含三个字符Ԍ 参数名、该参数所需值的cd和该参数的说明?/SPAN>
public void play(URL url)Q?/SPAN>// 加蝲q播放一个url指定的音频剪辑?/SPAN>
public void destroy()Q?/SPAN>//撤消Applet及其所占用的资源。若该Applet是活动的Q则先终止该Applet的运行?/SPAN>

  (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

import java.awt.*;
import java.applet.*;
public class StartStop extends Applet
{
  StringBuffer message;
  
public void init()
  {
    message
=new StringBuffer("Init done");
  }  
  
public void start()
  {
    message.append(
"Started");
  }
  
public void stop()
  {
    message.append(
"Stopped");
  }
  
public void paint(Graphics g)
  {
    g.drawString(message.toString(),
50,50);
  }
}

      文g?StartStop.html
<HTML>
<TITLE>test process Applet</TITLE>
<body>
Here comes my process applet:
<br>
<APPLET
CODE="StartStop.class"
WIDTH
=400
HEIGHT=100>
</APPLET>
</body>
</HTML>

  (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;
  }
 那么对于以下三条声名变量的语句,java在ؓ其分配内存的时候有什么不同吗Q?nbsp;
 (1) int i;
  (2) Date mybirth;
  (3) Date mybirth=new Date();
  很显然是有的Q分配情况如?
  (1)Java自动为整数i分配整Ş变量的内存,一般是两个字节
  (2)Java声明了一个Datecȝ实例变量mybirthQƈ为其分配了存储空_但这个存储空间里面存储的只是一个引用,或者说是一个地址Q目前的地址里面什么都没有Q那么我们就q不能用这个实例变量,不能引用它的成员?BR>  (3)Java创徏了一个Datecȝ实例变量mybirthQƈ为其成员变量分配了够的存储I间Q最后返回对q个存储I间的一个引用,也就是返回这个存储空间的首地址Q以后就通过mybirthQ即q个首地址来访问这个实例变量里面的各个成员Q如mybirth.dayQmybirth.monthQmybirth.year?BR>  当我们声明一个基本数据类型的变量Q如booleanQ?nbsp;byteQ?nbsp;shortQ?nbsp;charQ?nbsp;intQlongQflatQdoubleQ时Q系l会自动为变量分配内存。但是如果声明了String或者用戯定义的变量时Q系l不会立即ؓ其分配内?Z么会q样?
  q是因ؓQString和用戯定义的变量都属于cȝ范畴.一个被声明为类的变量,已经不再是一个数据了Q而变成对数据的一个引用,是说mybirth可以看作是一个指向类的一个实例的指针Q里面存攄是地址.q样的话好理解了?BR>  深入一点,既然cȝ实例变量值是指针Q这个指针指向一个类的实例,那么我们昄可以定义多个名称不同的类的实例变量,而将它们全都指向一个实例。比如:
   University u=new University();//定义了一个类University的实例变量uQƈ为其分配对象的存储空?BR>  University u2=u;//又定义了一个实例变量u2Q将u的Dlu2
  那么昄u2和u除了名称不同外,其实是一回事Q因为它们指向相同一个地址.
  我觉得弄清楚q一点还是很重要的。这些数据结构的东西Q是一个程序员需要知道的所以然.



]]>
վ֩ģ壺 ½| | | | Դ| | | | ҵ| | | ij| | ׯ| ˮ| | | ƽ| | Ԫ| ͨ| | | ƺ| | ͼ| | | | | | | ӻ| | ˮ| | | ɿ| ѭ| | ʱ|