Swing


天行健 君子以自强不息

posts - 69, comments - 215, trackbacks - 0, articles - 16
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

applet 载入知识

Posted on 2007-06-26 10:32 zht 阅读(1574) 评论(0)  编辑  收藏

      一般applet在网页中显示之前有两个过程
      1、下载applet
      2、初始化applet(init)

      如果不做处理则刚开始的时候会是灰色的一块,而且有一个框提示单击以激活。通过做如下处理可以来处理这些问题:

      1、在网页上定义一个DIV层,将其设为全屏显示,通过<div id="show" style="width: 1%;height: 1%"><script type="text/javascript" src="js.js"></script>
  </div>的方式把applet镶入网页,必须要有一定的长宽,要不applet是不会加载的,用来模拟applet下载和初始化工程,因为下载过程是无法控制的,它和网络以及applet的大小有关系,所以刚开始的时候可以用一个gif来显示程序下载过程。
      2、applet下载完成进入初始化阶段以后,就可以通过applet调用javascript在页面上显示初始化过程了,通过调用页面js中的一些函数在页面上输出初始化进度,具体可以applet调用js,以进度条的形式展现给用户。
      3、applet初始化完毕以后把DIV层设为不可见,完毕。
      
          关于单击以激活提示框,这个提示框,是微软为了避免与eolas公司和加利福尼亚大学之间的专利侵权纠纷,而发布的一个ie非安全更新,这不是什么bug(
http://support.microsoft.com/kb/912945)安装这个补丁以后,ie对activex控件和java程序的处理方式将有所改变,默认情况下不会主动激活。可以有两种处理方式(1)卸载微软的更新补丁(2)通过程序的方式来处理,这里推荐第二种方法。具体如下:
不在页面上直接写applet或object标签通过javascript写入,并且要把这些javascript语句写入到一个js中,然后用<script type="text/javascript" src="js.js"></script>的方式载入 这样就可以避免出现单击以激活提示框。
以下是Applet调用页面Javascript的示例:
首先要导入jre/lib下的 plugin.jar文件
import netscape.javascript.JSObject;
JSObject window = JSObject.getWindow(this);
   JSObject docment = (JSObject) window.getMember("document");
   docment.eval("setPB(" + 10 + ")");
   for (int i = 0; i < 11; i++) {
    Thread.sleep(500);
    docment.eval("setPB(" + i * 10 + ")");
    docment.eval("setStr('" + i * 100000 + "初始化 ')");
   }