JAVA Applet应用开发

 

JAVA 编程思想第14章讲述APPLET使用

 

Java Applet 编程技巧实例专辑

http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=1586

 

怎样把Java Applet嵌入HTML

http://www.yuzi.net/Show.asp?id=2708

 

NetBeans创建可拖拽到桌面的Applet

http://developers.sun.com.cn/blog/ada/entry/netbeans%E5%88%9B%E5%BB%BA%E5%8F%AF%E6%8B%96%E6%8B%BD%E5%88%B0%E6%A1%8C%E9%9D%A2%E7%9A%84applet

 

jsp教程servlet与applet的交互

 

http://www.zhiweinet.com/jiaocheng/2009-06/12118.htm

 

在第1章中我们已经知道,一个Java Applet程序中必须有一个类是Applet类的子类。我们称该子类是Java Applet的主类,并且主类必须修饰为public的。Applet类是包java.applet中的一个类,同时它还是包java.awt中 Container(容器)  类的子类,因此Java Applet的主类的实例是一个容器。我们已经知道,Java Applet程序通过浏览器来执行,因此它和Java应用程序有许多不同之处。
applet1.java 的类子来说明过程。
一个Java Applet也是由若干个类组成的,但必须有一个类扩展了Applet类。即它是Applet类的子类。Applet类是系统提供的类。我们把这个类叫做 这个Java Applet的主类,JavaApplet的主类必须是public的。一个JavaApplet不再需要main方法,但必须有且只有一个类扩展了 Applet类。当我们保存上面的源文件时,必须命名为Exampie8_1.java。假  设我们保存Example8_l.java在f:/8000目录下。
2.编译
f:/8000>/javac applet1.java
编译成功后,文件夹8000下会生成一个applet1.class文件。如果源文件有多个类,
  那么将生成多个class文件,都和源文件在同一文件夹里


3.运行
Java Applet必须由浏览器来运行,因此我们必须编写一个超文本文件(含有applet标记的web页)告诉浏览器来运行这个JavaApplet。
下面是一个最简单的一个html文件,告诉浏览器运行我们的Java Apple。我们使用记事本编辑如下一个超文本文件,并保存在f:/8000目录下,命名为Example8_1.html(扩展  名必须是html,主文件名只要符合Java标识符规定即可)。
    <applet code=Example8_1.class height=180 width=300>
    </applet>
    超文本中的标记<apple…>  和</applet>告诉浏览器将运行一个Java Applet,code
  告诉浏览器运行哪个Java Applet。code的符号"="后面是主类的字节码文件。
一个Java Applet的执行过程称为这个Java Applet的生命周期。一个Java Applet的生命周期内涉及如下方法,这些方法也正是一个完整的Java Applet所包含的,它们是:init()、 start()、stop()、destroy()、paint(Graphics g)方法。
(1)初始化:init()
      这个对象首先自动调用init()方法完成必要的初始化工作。初始化的主要任务是创建所需要的对象、设置初始状态、装载图像、设置参数等。init()方法格式如下:
      public void init()
      {  …
      }   
      init()方法只被调用执行一次。该方法是父类Applet中的方法,Example8_l.java重写了这个方法。


(2)启动:start()
      初始化之后,仅接着自动调用start()方法。在程序的执行过程中,init()方法只被调用执行一次,但start()方法将多次被自动调用执行。除 了进入执行过程时调用方法start()外,当用户从applet所在的Web页面转到其他页面,然后又返回时,start()将再次被调用,但不再调用 init()方法。start()方法的格式如下:
     public void start()
     {  …   
     }
     该方法是父类Applet中的方法,Example8_l.java重写了这个方法。
(3)停止:stop()
      当浏览器离开Java Applet所在的页面转到其他页面时,stop()方法被调用。如果浏览器又回到此页,则start()又被调用来启动Java Applet。在Java Applet的生命周期中,stop()方法也可以被调用多次。如果你在小程序中设计了播放音乐的功能,而没有在stop()方法中给出停止播放它的有关 语句,那么当离开此页去浏览其他页时,音乐将不能停止。如果没有定义stop()方法,当用户离开Java Applet所在的页面时,Java Applet将继续使用系统的资源。若定义了stop()方法,则可以挂起applet的执行。stop()方法的格式为:
      public void stop()
     {    …
     }
     该方法是父类Applet中的方法,Example8_l.java重写了这个方法。


(4)删除:destroy()
      当浏览器结束浏览时,执行destroy()方法,结束applet的生命。该方法是父类Applet中的方法,不必重写这个方法,直接继承即可。
(5)描绘:paint(Graphics g)
     paint(Graphics g)方法可以使一个applet在屏幕上显示某些信息,如文字、色彩、背景或图像等。在applet的生命周期内可以多次调用。例如,当applet被其 他页面遮挡,然后又重新放到最前面、改变浏览器窗口的大小、以及applet本身需要显示信息时,paint()方法都会被自动调用。
     与上述4种方法不同的是,paint()方法有一个参数g。浏览器的Java运行环境产生一个Graphics类的实例,并传递给方法paint()中的参数g。因此,你不妨把g理解为一个画笔。该方怯是Component中的方法,例子中重写了这个方法。
(6)关于repaint()方法
当你使用repaint()方法时,将导致下列事情发生:程序首先清除paint()方法以前所画  的内容,然后再调用paint()方法。 在下面的例子中,我们在paint()方法中,使用了repaint()方法,因此每当小程序调用paint()方法时,将会导致paint()方法以前 所画的内容消失,并紧接着再调用paint()方法。
   这样,小程序中的字符串就不断地往下走。  该方法是Component中的方法,applet2.java继承了这个方法。

javacard applet 开发实例 正常运行 带jar包 package mifare; import com.ibm.jz.JZSystem; import javacard.framework.APDU; import javacard.framework.Applet; import javacard.framework.ISO7816; import javacard.framework.ISOException; import javacard.framework.Util; public class AmbiqApplet extends Applet { byte[] mifarePassDefault={(byte)0x0b,(byte)0x54,(byte)0x57,(byte)0x07,(byte)0x45,(byte)0xfe,(byte)0x3a,(byte)0xe7}; byte[] mifarePass8={(byte)0x0b,(byte)0x54,(byte)0x57,(byte)0x07,(byte)0x45,(byte)0xfe,(byte)0x3a,(byte)0xe7}; byte[] mifarePass9={(byte)0x0b,(byte)0x54,(byte)0x57,(byte)0x07,(byte)0x45,(byte)0xfe,(byte)0x3a,(byte)0xe7}; byte[] adminPass={(byte)0x40,(byte)0x41,(byte)0x42,(byte)0x43,(byte)0x44,(byte)0x45,(byte)0x46,(byte)0x47,(byte)0x48,(byte)0x49,(byte)0x4a,(byte)0x4b,(byte)0x4c,(byte)0x4d,(byte)0x4e,(byte)0x4f}; public static void install(byte[] bArray, short bOffset, byte bLength) { // GP-compliant JavaCard applet registration new AmbiqApplet().register(bArray, (short) (bOffset + 1), bArray[bOffset]); } public void process(APDU apdu) { short i; byte[] send=new byte[52]; byte[] send2=new byte[24]; // Good practice: Return 9000 on SELECT if (selectingApplet()) { return; } byte[] buf = apdu.getBuffer(); if(buf[ISO7816.OFFSET_CLA]==AmbiqConstant.CLS_AMBIQ) { switch (buf[ISO7816.OFFSET_INS]) { case AmbiqConstant.INS_GET_MIFARE: if(buf[ISO7816.OFFSET_P1]!=0 || buf[ISO7816.OFFSET_P2]!=0) { ISOException.throwIt(ISO7816.SW_INCORRECT_P1P2); return; } /*Get Entire Mifare Ticket data * Returns back the content of the entire sector 8 (3 block 8.0, 8.1, 8.2) and the first 4 bytes of block 9.0; total 52bytes. Filed Length (in bytes) Data Comments CLA 1 0x80 Fixed class for the applet INS 1 0x20 Read entire data P1 1 0x00 Sector number P2 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值