学习内容:

      Applet

      Applet一般称为小应用程序,Java Applet就是用Java语言编写的这样的一些小应用程序,它们可以通过嵌入到Web页面或者其他特定的容器中来运行,也可以通过Java开发工具的appletviewer来运行。Applet必须运行于某个特定的“容器”中,这个容器可以是浏览器(如IE,FireFox,Opear,Netscape等),也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。与独立运行的Java应用程序不同,Applet有自己的一套执行流程,而不是通过main方法来开始执行程序,并且在运行过程中Applet通常会与用户进行交互操作,显示动态的页面效果,并且还会进行严格的安全检查,以防止潜在的不安全因素(如根据安全策略,限制Applet对客户端机器的文件系统进行访问等)。Java Applet可以实现图形图像绘制、字体和颜色控制、动画和音视频播放、人机交互以及网络通信等功能,此外,Java Applet还提供了称为抽象窗口工具箱(Abstract Window Toolkit,简称AWT)的窗口环境开发工具,AWT利用计算机的GUI技术,可以帮助用户轻松地建立标准的图形用户界面,如窗口、按钮、菜单、下拉框和滚动条等。现在,网络上已经有非常多的Applet收集站提供各种精彩范例来展现各种功能。

   import java.awt.*;

   import java.applet.*;
   public class HelloApplet extends Applet
   {
   public void paint(Graphics g )
   {
   g.drawString("Hello!",10,10);
   g.drawString("Welcome to Applet Programming!",30,30);
   }
   }

      程序开头两行的import语句是用来导入Applet小程序中用到的一些Java标准库类,类似于C语言中的include语句,多数Applet程序都会含有类似的代码,以使用JDK提供的功能;接下来在程序中定义了一个公共类HelloApplet,它通过extends继承于Applet类,并重写父类中的paint()方法,其中参数g为Graphics类的对象,代表当前绘画的上下文,在paint()方法中,两次调用g的drawString()方法,分别在坐标(10,10)和(30,30)处输出字符串“Hello!”和“Welcome to Applet Programming!”,其中的坐标是用像素点表示的,且以显示窗口的左上角作为坐标系的原点(0,0)。

      另外,Applet程序中没有出现main()方法。其实这正是Applet小程序与Application应用程序的重要区别之一。因为Applet小程序没有main()方法作为执行入口,因此必须将其放至在“容器”中加以执行,常见的做法是编写HTML文件,将Applet嵌入其中,然后用支持Java的浏览器或appletviewer工具来运行。

      Applet小程序的生命周期相对于Application而言较为复杂。在其生命周期中涉及到Applet类的4个方法:init()、start()、stop()和destroy(),Applet的生命周期中有相对应的4个状态:初始态、运行态、停止态和消亡态。当程序执行完init()方法后,Applet小程序就进入了初始态;然后立刻执行start()方法,Applet小程序进入运行态;当Applet小程序所在的浏览器图标化或者是转入其他页面时,该Applet小程序立刻执行stop ()方法,使Applet小程序进入停止态;在停止态中,如果浏览器又重新加载该Applet小程序所在的页面,或者是浏览器从图标中还原,则Applet小程序又会调用start()方法,进入运行态;不过,在停止态时,若浏览器被关闭,则Applet小程序会调用destroy()方法,使其进入消亡态。

      init()方法
      当Applet小程序第一次被加载执行时,便调用该方法,并且在小程序的整个生命周期中,只调用一次该方法,一般在其中进行一些初始化操作,如处理由浏览器传递来的参数、添加图形用户界面的组件、加载图像和音频文件等。另外需要说明的是:Applet小程序虽然有默认的构造方法,但它习惯于在init()方法中进行初始化操作,而不是在默认的构造方法内。

      start()方法
      系统在执行完init()方法后,将自行调用start()方法,并且每当浏览器从图标还原为窗口时,或者当用户离开包含该Applet小程序的页面后又返回时,系统都将重新执行一遍start()方法,因此start()方法在小程序的生命周期内可能会被调用多次,这一点是与init()方法不同的,此外,该方法通常作为Applet小程序的主体,在其内可以安排一些需要重复执行的任务或者重新激活一个线程,如打开一个数据库连接、播放动画或是启动一个播放音乐的线程等。

      stop()方法
      与start()方法相反,当用户离开Applet小程序所在的页面或者浏览器图标化时,系统会自动调用stop()方法,因此,该方法在Applet小程序的生命周期内也可能被多次调用。这样处理的好处是:当用户不再使用Applet小程序的时候,停掉一些耗用系统资源的任务(如断开数据库的连接或是中断一个线程的执行等),以提高系统的运行效率,况且这也并不需要人为地去干预。假如Applet小程序中不需要包含打开数据库连接或者播放动画、音乐等代码时,也可以不重载该方法。
       destroy()方法
      当浏览器或其他容器被关闭时,Java系统会自动调用destroy()方法。该方法通常用于回收init()方法中初始化的资源,在调用该方法之前,肯定已经调用了stop()方法。

      双缓冲技术是指当需要在屏幕上显示的图像文件又大又多时,利用该技术在屏幕外面创建一个虚拟的备用屏幕,计算机系统直接在备用屏幕上作画,等画完以后将备用屏幕中的点阵内容直接切换给当前屏幕。直接切换准备好的画面的速度要比在屏幕上当场作画(刷新画面)的速度快得多。

         双缓冲技术也可以这样解释:Java动画程序在显示动画图形之前,首先创建两个图形缓冲区:一个是为前台的显示缓冲;一个是为后台的图形缓冲,然后在显示(绘制)图形时,对两个缓冲区进行同步的图形数据更新,该操作相当于为前台显示区的数据作了一个后台的图形数据备份,当前台显示区的图形数据需要恢复时,可以用后台备份的图形数据来恢复,其具体方法则是重写paint()和update()方法,将备份好的图形数据一次性地画到显示屏幕上。

明天内容:

      HTML

遇到问题:
      无

学习java 7.28的更多相关文章

  1. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程

    在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1  哪些知识点 ...

  2. 推介一个学习JAVA的系列教程-狗鱼IT教程

    介绍一个学JAVA的零基础学习JAVA的网站,推介一个学习JAVA的系列教程-狗鱼IT教程 下面是java的系教程: 1、[java教程]Java 教程 2、[java教程]Java 简介 3、[ja ...

  3. 零基础如何学习java更有效呢?

    零基础学java,不知道该如何入手?也不知道学习的方向,很多人会问零基础怎么样学习,有没有什么入门的书籍推荐:只要方法正确,零基础学好java也是有机会的哦. 一.理解Java思想 Java是一门面向 ...

  4. 积极主动敲代码,使用Junit学习Java程序设计

    积极主动敲代码,使用JUnit学习Java 早起看到周筠老师在知乎的回答软件专业成绩很好但是实际能力很差怎么办?,很有感触. 从读大学算起,我敲过不下100本程序设计图书的代码,我的学习经验带来我的程 ...

  5. 如何接触学习java

    信息科技必将是未来的潮流,Java语言必将在时代的进步中发挥不可估量的作用,未来,掌握好一门实用而且有良好应用前景的技术是你们的首要任务. 零基础怎么学Java 多年Java教育培训经验事实表明,零基 ...

  6. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  7. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  8. 《疯狂Java讲义》(一) ---- 关于学习Java的反思

    "听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...

  9. 十天来学习java的心得体会

    有关学习java是几天来的心得体会: 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄.同学).在其中 ...

随机推荐

  1. 公众号H5页面接入微信登录流程

    公众号H5页面接入微信登录流程 源码地址 https://gitee.com/szxio/h5_weixin 起步 首先创建一个项目,我们采用uni-app来作为我们的前端框架 环境安装 全局安装vu ...

  2. PSS--待看

    转载:浅谈可移植激励规范(PSS)复用策略_路科验证-CSDN博客 译者按 :当今硬件设计变得愈加复杂,如何创建出足够的测试来保证设计的正确性是每个硬件工程师需要面对的问题.Accellera的可移植 ...

  3. 六. Go并发编程--WaitGroup

    一. 序言 WaitGroup是Golang应用开发过程中经常使用的并发控制技术. WaitGroup,可理解为Wait-Goroutine-Group,即等待一组goroutine结束.比如某个go ...

  4. fork函数详解(附代码)

    虽然篇幅很长,但大多是易懂的代码,不用担心看不完 这里的所有操作,都将在下面的代码中有所体现 fork会拷贝当前进程的内存,并创建一个新的进程.如上图,fork函数会将整个进程的内存镜像拷贝到新的内存 ...

  5. 记一次CTF比赛过程与解题思路-MISC部分

    前言 最近好久没更新博客和公众号了,有朋友问是不是在憋大招,但我不好意思说其实是因为最近一段时间太懒了,一直在当咸鱼- 意识到很久没更新这个问题,我是想写点什么的,但好像一直当咸鱼也没啥可分享的,最近 ...

  6. Cannot load module file xxx.iml的两种解决方法

    一. 一种是点击左上角File,然后点击Invalidate Caches / Restart...,弹出对话框再点击Invalidate and Restart等待工程重新加载,问题就解决了. 二. ...

  7. Netty数据如何在 pipeline 中流动

    前言 在之前文章中,我们已经了解了pipeline在netty中所处的角色,像是一条流水线,控制着字节流的读写,本文,我们在这个基础上继续深挖pipeline在事件传播 Unsafe对象 顾名思义,u ...

  8. find 删除日志文件

    find 命令删除日志文件 find ./my_dir -mtime +10 -type f -delete EXPLANATIONS ./my_dir your directory (replace ...

  9. win8中让cmd.exe始终以管理员身份运行

    最近在学习配置本地服务器,在命令行启动mysql时总是由于权限不足而失败, Win+R -- cmd ,这样总是不能,还要找到cmd.exe右键以管理员身份运行cmd,再 net start mysq ...

  10. [atAGC006D]Median Pyramid Hard

    二分答案,考虑答案是否会大于等于这个mid,显然所有数值分为两类:大于等于mid和小于mid将n个数转化为01串,如果0和1不相邻,那么答案就是第一个数/最后一个数(一定会相同),考虑有连续两个0/1 ...