ZLYD团队Apllet学习笔记

Applet再学习

Applet是什么?

  • Applet又称为Java小应用程序,是能够嵌入到一个HTML页面中,并且可通过Web浏览器下载和执行的一种Java类 。Applet不需要main()方法,由Web浏览器中内嵌的Java虚拟机调用执行。

Applet的安全限制

  • 因为applet是从远端服务器上下载并且在本地执行,所以安全性就显得格外重要。
  • 通过限制applet在沙箱(applet的运行环境)中运行,保证了对本地系统而言applet是安全的。
  • applet在沙箱中运行时:⑴不能运行任何本地可执行程序;⑵除了存放下载的applet的服务器外,applet不能和其它主机进行通信。⑶不能对本地文件系统进行读写。

Applet的生命周期

  • init():当浏览器加载applet,进行初始化的时候调用该方法。
  • start():在init()方法之后调用。当用户从其它页面转到包含applet的页面时,该方法也被调用。
  • stop():在用户离开包含applet的页面时被调用。
  • destroy():当applet不再被使用,或浏览器退出的时候,该方法被调用。

paint()方法 这个paint还是来自于AWT

  • Applet本质上是图形方式的,我们应该在图形环境中绘制我们的显示内容。
  • 我们可以通过创建一个paint()方法在Applet的panel上绘图。只要Applet的显示需要刷新,paint()方法就会被浏览器环境调用。例如,当Applet的显示尺寸发生变化的时候,或浏览器窗口被最小化或被要求以图标方式显示时,这种调用就会发生。
  • 我们应该编写自己的paint()方法,以使它在任何时候被调用,都能正常地工作。对它的调用是异步产生的,且由Applet的运行环境而不是程序来驱动 。
  • paint()方法带有一个参数,它是java.awt.Graphics类的一个实例。这个参数总是建立该Applet的panel的图形上下文,我们可以用这个图形上下文在Applet中绘图或写入文本。

applet从网页中获取信息

  • 正如应用程序可以通过命令行参数来获取信息一样,通过使用param标记,applet可以从网页中获取信息。
  • 在浏览器中显示信息:调用AppletContext接口中的showStatus()方法
  • 请求浏览器显示指定的网页:调用AppletContext接口中的showDocument()方法。

applet的HTML标记和属性

  • 用于定位的applet属性:

width和height:必要的属性,以象素为单位,设定applet的宽度和高度。
align:可选的属性,指定applet对齐的方式。
left: 把applet放在网页左边,后面的文本会移至applet的右边。
right: 把applet放在网页右边,后面的文本会移至applet的左边。
bottom: 把applet的底部与当前行文本底部对齐。
top: 把applet的顶部与当前行顶部对齐。
texttop: 把applet的顶部与当前行文本顶部对齐。
middle: 把applet的中部与当前行基线对齐。
absmiddle: 把applet的中部与当前行中部对齐。
baseline: 把applet的底部与当前行基线对齐。
absbottom: 把applet的底部与当前行底部对齐。
vspace和hspace:可选的属性,指定在applet上/下的象素数目(vspace)和applet两边的象素数目(hspace)。

  • 用于编码的applet属性:

code:指定applet类文件的名字。该名字要么是相对于codebase,那么是相对于当前页面。
codebase:可选的属性,告诉浏览器到哪个目录下去寻找类文件。
archive:可选的属性,列出Java存档文件、包含类文件的文件或者applet需要的其它资源。
object:用来指定applet类文件的另外一个方法。
name:可选的属性,页面脚本编写人员希望赋予applet名字属性,这样,在编写脚本的时候,就可以用为该属性指定的名字来代表这个applet。

附录:AWT动画,还是讨论paint(),update(),repaint()之间的关系

更新显示由一种被称为AWT线程的独立的线程来完成。这个线程可用来处理与显示更新相关的两种情况。
第一种情况是显露(exposure),它在首次显示时,或在部分显示已被破坏而必须刷新时出现。显示的破坏可能发生在任何时刻,因此,我们的程序必须能在任意时刻更新显示。第二种情况是在程序重画带有新内容的画面时。这种重画可能会要求首先擦除原来的图像。

  • paint(Graphics g)方法
    当组件第一次显示,或受损的部分需要修复时被调用。除非必要,更新不会完全覆盖整个图形区域,而是严格限制在被破坏的范围内。
  • repaint()方法
    对repaint()的调用可通知系统:你想改变显示,于是系统将调用paint()。
  • update(Graphics g)方法
    repaint()实际上产生了一个调用另一方法update()的AWT线程。update方法通常清除当前的显示并调用paint()。update()方法可以被修改,例如:为了减少闪烁可不清除显示而直接调用paint()。

Applet再学习的更多相关文章

  1. js再学习笔记

    #js再学习笔记 ##基本 1.js严格区分大小写   2.js末尾的分号可加,也可不加   3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...

  2. express再学习

    对比spring,django,再学习express就有很多共通的地方啦... 看的书是一本小书,<express in action>,排版比较好. 昨天开始看,看了快四分之一啦... ...

  3. Android再学习-20141023-Intent-Thread

    20141023-Android再学习 Intent对象的基本概念 Intent是Android应用程序组件之一 Intent对象在Android系统中表示一种意图 Intent当中最重要的内容是ac ...

  4. Android再学习-20141022-Activity的生命周期

    20141022-Android再学习 如何在一个应用程序当中定义多个Activity 定义一个类,继承Activity 在该类当中,复写Activity当中的onCreate方法.onCreate( ...

  5. Android再学习-20141018-布局-进度条

    20141018-Android再学习 对齐至控件的基准线 为了保证印刷字母的整齐而划定的线(四线三格的第三条线). android:layout_alignBaseline 与父控件的四个边缘对齐( ...

  6. 再学习sqlhelper

    在机房收费重构系统的时候,第一次学习sqlhelper.当时感觉比较简单,没有写博客总结,现在又经过了图书馆的学习,感觉还是有必要写一写的. SqlHelper是一个基于.NETFramework的数 ...

  7. c/c++再学习:常用字符串转数字操作

    c/c++再学习:常用字符串转数字操作 能实现字符串转数字有三种方法,atof函数,sscanf函数和stringstream类. 具体demo代码和运行结果 #include "stdio ...

  8. c/c++再学习:C与Python相互调用

    c/c++再学习:Python调用C函数 Python 调用C函数比较简单 这里两个例子,一个是直接调用参数,另一个是调用结构体 C代码 typedef struct { int i1; int i2 ...

  9. MQTT再学习 -- MQTT 客户端源码分析

    MQTT 源码分析,搜索了一下发现网络上讲的很少,多是逍遥子的那几篇. 参看:逍遥子_mosquitto源码分析系列 参看:MQTT libmosquitto源码分析 参看:Mosquitto学习笔记 ...

随机推荐

  1. android基础---->DiskLruCache的使用及原理

    DiskLruCache是谷歌推荐的用来实现硬盘缓存的类,今天我们开始对于DiskLruCache的学习.DiskLruCache的测试代码:DiskLruCache的测试代码下载.关于FidkLru ...

  2. PHP一句话木马小总结与SQL语句写一句话木马

    一.基础类的一句话--功能仅限于验证漏洞了,实际中太容易被查出出来: <?php @eval($_GET["code"])?> <?php @system($_P ...

  3. 11.事件驱动events

    事件驱动events ==> events.EventEmitter, EventEmitter 的核心就是事件发射与事件监听器功能的封装更详细的 API 文档参见 http://nodejs. ...

  4. Dell、IBM服务器配置远程管理卡

    author: headsen  chen date: 2018-10-09 14:12:32 1,IBM的服务器: 需要在bios里边进行配置,具体配置如下: , 开机画面过完之后,按F1进入bio ...

  5. img通过canvas转成base64编码

    <script type="text/javascript"> function getBase64Image(img) { var canvas = document ...

  6. 纯HTML自动刷新页面或重定向(http-equiv属性的refresh)

    refresh 属性值  --  刷新与跳转(重定向)页面 refresh出现在http-equiv属性中,使用content属性表示刷新或跳转的开始时间与跳转的网址 refresh示例一:5秒之后刷 ...

  7. OC开发_Storyboard——多线程、UIScrollView

    一.多线程 1.主队列:处理多点触控和所有UI操作(不能阻塞.主要同步更新UI) dispatch_queue_t mainQueue = dispatchg_get_main_queue(); // ...

  8. 重新来认识你的老朋友Spring框架

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  9. Android官方架构组件指南

    此指南适用于那些曾经或现在进行Android应用的基础开发,并希望了解和学习编写Android程序的最佳实践和架构.通过学习来构建强大的生产级别的应用. 注意:此指南默认你对Android开发有比较深 ...

  10. 括号匹配问题(区间dp)

    简单的检查括号是否配对正确使用的是栈模拟,这个不必再说,现在将这个问题改变一下:如果给出一个括号序列,问需要把他补全成合法最少需要多少步? 这是一个区间dp问题,我们可以利用区间dp来解决,直接看代码 ...