• 技术文章 >Java >java教程

    分享一个Java的小应用程序:applet

    Y2JY2J2017-05-18 10:15:05原创4748

    Java Applet就是用Java语言编写的小应用程序,它们可以直接嵌入到网页中,并能够产生特殊的效果

    applet经编译后,会产生.class的文件,把.class的文件嵌在html的网页中,只要用户连到一个网页里,applet便会随着网页下载到用户的计算机运行

    applet类的继承关系如下:

    java.lang.Object

    java.awt.Component

    java.awt.Container

    java.awt.Panel

    java.applet.Applet

    applet的生命周期如下


    applet的四种主要方法

    public void init() : 由浏览器或appletviewer调用来告诉当前applet 它已被载入系统,该方法总在start()方法第一次被调用前调用

    public void start() : 由浏览器或appletviewer调用来告诉当前applet它应该开始执行,该方法在init()方法后调用,并且每次Web页访问该applet时都会调用该方法

    public void stop(): 由浏览器或appletviewer调用来告诉当前applet它应该停止执行,当包含当前applet的Web页被另一Web页所替代时会调用该方法,在调用destroy()方法前也会调用该方法

    public void destroy(): 由浏览器或appletviewer调用来告诉当前applet它已被要求归还并且它应该清除分配给它的任何资源

    请看下面这段代码

    import java.awt.*;
    import java.util.*;
    public class cam1 extends java.applet.Applet
    {
         String s;
         int inits=0,starts=0,stops=0;
         public void init()
         {
        	 inits++;
        	 showStatus("now init");
        	 System.out.println("now init");
        	 pause();
        	 showStatus("leave init");
        	 System.out.println("leave init");
        	 pause();
         }
         public void start()
         {
        	 starts++;
        	 showStatus("now start");
        	 System.out.println("now start");
        	 pause();
        	 showStatus("leave start");
        	 System.out.println("leave start");
        	 pause();
         }
         public void stop()
         {
        	 stops++;
        	 showStatus("now stop");
        	 System.out.println("now stop");
        	 pause();
        	 showStatus("leave stop");
        	 System.out.println("leave stop");
        	 pause();
         }
         public void paint(Graphics g)
         {
        	 s="inits: "+inits+"starts: "+starts+"stops: "+stops;
        	 g.drawString(s, 10, 10);
        	 System.out.println("now paint: "+s);
        	 pause();
         }
         public void pause()
         {
        	 Date d=new Date();
        	 long t=d.getTime();
        	 while(t+1000>d.getTime())
        	 {
        		 d=new Date();
        	 }
         }
    }

    小应用程序查看器如下


    eclipse中的Console如下

    now init

    leave init

    now start

    leave start

    now paint: inits: 1starts: 1stops: 0

    now paint: inits: 1starts: 1stops: 0 //缩放(放大)

    now paint: inits: 1starts: 1stops: 0 //缩放(缩小)

    now stop //重新启动

    leave stop

    now init

    leave init

    now start

    leave start

    now paint: inits: 2starts: 2stops: 1

    now stop

    leave stop

    将其嵌入到html里

    <HTML>
    <HEAD>
    <TITLE>WELCOME </TITLE>
    </HEAD>
    <BODY> test
    <APPLET code="cam1.class" WIDTH=750 HEIGHT=325>
    </APPLET>
    </BODY>
    </HTML>

    我用的是谷歌浏览器,网页打开如下


    System.out.println的输出在java控制台中查看

    之前要在java控制面板中将java控制台设置为显示


    当窗口的尺寸调整,移动,或其内容改变时,paint函数重画applet窗口

    控制台显示如下


    Java 插件10.13.2.20
    使用 JRE 版本 1.7.0_13-b20 Java HotSpot(TM) Client VM
    用户主目录 = C:\Users\Administrator
    ----------------------------------------------------
    c:   清除控制台窗口
    f:   终结在结束队列上的对象
    g:   垃圾收集
    h:   显示此帮助消息
    l:   转储类加载器列表
    m:   打印内存使用情况
    o:   触发日志记录
    q:   隐藏控制台
    r:   重新加载策略配置
    s:   转储系统和部署属性
    t:   转储线程列表
    v:   转储线程堆栈
    x:   清除类加载器高速缓存
    0-5: 设置跟踪级别为<n>
    ----------------------------------------------------
    now init
    leave init
    now start
    now paint: inits: 1starts: 1stops: 0
    leave start
    now paint: inits: 1starts: 1stops: 0   //缩放
    now paint: inits: 1starts: 1stops: 0
    now paint: inits: 1starts: 1stops: 0
    now paint: inits: 1starts: 1stops: 0
    now stop  //刷新网页
    leave stop
    Exception in thread "thread applet-cam1.class-1" java.lang.NullPointerException
    	at java.awt.EventQueue.isDispatchThread(Unknown Source)
    	at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.runOnEDT(Unknown Source)
    	at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.doClearAppletArea(Unknown Source)
    	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    now init
    leave init
    now start
    now paint: inits: 1starts: 1stops: 0
    leave start

    【相关推荐】

    1. 特别推荐“php程序员工具箱”V0.1版本下载

    2. Java免费视频教程

    3. 带你初步认识Java Applet程序

    4. 教你如何去配置Applet的环境

    5. 详解Application和Applet的有什么不同之处

    以上就是分享一个Java的小应用程序:applet的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:带你初步认识Java Applet程序 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java中Map集合体系的基本使用和常用API• Java数据结构常见排序算法(总结分享)• 一起来分析java设计模式之单例• 深入分析Java的序列化与反序列化• Java知识点总结之多线程基础
    1/1

    PHP中文网