Applet

Applet

Applet是什么

1)  Applet又称为Java小应用程序,是能够嵌入到一个HTML页面中,并且可通过Web浏览器下载和执行的一种Java类 。

2)  Applet不需要main()方法,由Web浏览器中内嵌的Java虚拟机调用执行。

Applet的安全限制

1)  因为applet是从远端服务器上下载并且在本地执行,所以安全性就显得格外重要。

2)  通过限制applet在沙箱(applet的运行环境)中运行,保证了对本地系统而言applet是安全的。

3)  applet在沙箱中运行时:

⑴不能运行任何本地可执行程序;

⑵除了存放下载的applet的服务器外,applet不能和其它主机进行通信。

⑶不能对本地文件系统进行读写。

Applet的生命周期

1)  init():当浏览器加载applet,进行初始化的时候调用该方法。

2)  start():在init()方法之后调用。当用户从其它页面转到包含applet的页面时,该方法也被调用。

3)  stop():在用户离开包含applet的页面时被调用。

4)  destroy():当applet不再被使用,或浏览器退出的时候,该方法被调用。

paint()方法

1)  Applet本质上是图形方式的,我们应该在图形环境中绘制我们的显示内容。

2)  我们可以通过创建一个paint()方法在Appletpanel上绘图。只要Applet的显示需要刷新,paint()方法就会被浏览器环境调用。例如,当Applet的显示尺寸发生变化的时候,或浏览器窗口被最小化或被要求以图标方式显示时,这种调用就会发生。

3)  我们应该编写自己的paint()方法,以使它在任何时候被调用,都能正常地工作。对它的调用是异步产生的,且由Applet的运行环境而不是程序来驱动。

4)  paint()方法带有一个参数,它是java.awt.Graphics类的一个实例。这个参数总是建立该Appletpanel的图形上下文,我们可以用这个图形上下文在Applet中绘图或写入文本。

如在Applet中显示一张名为T1.gif的图片,首先将图片拷贝至代码.class所在的目录中,此时可以用getCodeBase()来获取代码所在目录的URL,如果将图片存在applet嵌入的html所在的目录中,则用getDocumentBase()来获取html文件所在目录的URL,从而可以通过这两种方法来获取图片。

  public void init()

    {

             Image img=getImage(getCodeBase(),"T1.gif");

}

public void paint(Graphics g)

    {

        g.drawImage(img,0,0,this);

}

applet从网页中获取信息

正如应用程序可以通过命令行参数来获取信息一样,通过使用param标记,applet可以从网页中获取信息。

下面为applet嵌入的HTML文件中,要从此文件中获取字体信息在applet打印出相应字体的文字。

<applet code="AppletTest.class" Width=600 Height=600>

param name="font" value="华文行楷"

</applet>

public void init()

    {

        str=getParameter("font");

}

public void paint(Graphics g)

    {

        Font f=new Font(str,Font.BOLD,30);

        g.setFont(f);

        g.setColor(Color.red);

        g.drawString("你好", 0, 30);

}

Applet和浏览器的通信

1)  在浏览器中显示信息

   调用AppletContext接口中的showStatus()方法

2)  请求浏览器显示指定的网页

   调用AppletContext接口中的showDocument()方法。

public void init()

    {

        Button btn=new Button("链接");

        add(btn);

        btn.addActionListener(new ActionListener()

        {

            public void actionPerformed(ActionEvent e)

            {

                try

                {

                   getAppletContext().showDocument(new URL("http://localhost/postinfo.html"),"_blank");

                }

                catch(MalformedURLException ex)

                {

                    ex.printStackTrace();

                }

            }

        });

}

AWT绘图

1) paint(Graphics g)方法

  当组件第一次显示,或受损的部分需要修复时被调用。除非必要,更新不会完全覆盖整个图形区域,而是严格限制在被破坏的范围内。

2) repaint()方法

  repaint()的调用可通知系统:你想改变显示,于是系统将调用paint()

3) update(Graphics g)方法

  repaint()实际上产生了一个调用另一方法update()AWT线程。update方法通常清除当前的显示并调用paint()update()方法可以被修改,例如:为了减少闪烁可不清除显示而直接调用paint()

appletHTML标记和属性

用于编码的applet属性

code指定applet类文件的名字。该名字要么是相对于codebase,那么是相对于当前页面。

codebase可选的属性,告诉浏览器到哪个目录下去寻找类文件。

archive可选的属性,列出Java存档文件、包含类文件的文件或者applet需要的其它资源。

object用来指定applet类文件的另外一个方法。

name可选的属性,页面脚本编写人员希望赋予applet名字属性,这样,在编写脚本的时候,就可以用为该属性指定的名字来代表这个applet

如可以把java代码(.class文件)和applet中的所有图片等一起打包,则只需这个打包的文件已经相应的html文件既可运行嵌入此applet的网页文件。

打包:jar cvf Imagetest.jar ImageTest.class *.gif(ImageTest.class文件和目录中的所有gif格式的图片打包)

此时只需修改修改html中:

<applet code="ShowImage.class" width=600 height=400 archive="Imagetest.jar">

</applet>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值