学习内容:

      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. SpringCloud 2020.0.4 系列之Hystrix看板

    1. 概述 老话说的好:沉默是金,有时适当的沉默,比滔滔不绝更加有效. 言归正传,前面我们聊了有关 Hystrix 降级熔断的话题,今天我们来聊聊如何使用 turbine 和 hystrix dash ...

  2. 个人宽带如何开启IPv6网络访问

    IPv6是大势所趋,就在前段时间湖南联通发布公告,对家庭宽带提供 IPv6 地址,不再提供 IPv4地址,那本文就介绍 个人宽带如何开启 IPv6网络访问. 湖南联通停止向普通家庭宽带用户提供公网 I ...

  3. ASP的调试技术解答

    一. 调试 ASP.NET 应用程序时出现"未将项目配置为进行调试"的错误信息 症状 当您在 Visual Studio .NET 中调试 ASP.NET 应用程序时,可能会出现下 ...

  4. freeswitch的docker构建过程

    概述 Docker是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级.可移植的容器中,并在任何安装有Docker的机器上运行. Docker 使你能够将应用程序与基础架构分开,从而可 ...

  5. grafan源码编译

    下载grafana源码:https://github.com/grafana/grafana 前端: 安装node.js,安装完自带npmnpm install -g yarnyarn install ...

  6. js深拷贝你还不会吗

    js深拷贝 在讲正题之前我们要先了解数据存储的方式 数据存储方式 在讲之前我们要先知道值类型和引用类型的存储方式. 在JavaScript数据类型中有两种数据类型. 值类型:字符串(String).数 ...

  7. k8s endpoints controller分析

    k8s endpoints controller分析 endpoints controller简介 endpoints controller是kube-controller-manager组件中众多控 ...

  8. 第三周PTA笔记 回文数+A-B(大数减法)+高精度除法+数楼梯(大数加法)

    回文数 对于一个自然数n,若将n的各位数字反向排列所得的数n1与n相等,则称n为回文数,例如2332. 若给定一个N( 2<=N<=16)进制数M(M的长度在一百位以内),如果M不是回文数 ...

  9. 树莓派4b安装Ubuntu20.04

    树莓派4b安装Ubuntu20.04 下载Ubuntu20.04镜像 下载地址 安装Raspberry Pi Imager 下载地址 烧录系统 打开Raspberry Pi Imager,选择自己刚刚 ...

  10. jsonpath语法的基本使用

    jsonpath的安装及使用方式: pip安装: Python3.7\Scripts> pip install jsonpath jsonpath的使用: obj = json.load(ope ...