实现applet跨框架和浏览器窗口彼此通信[Java编程]
本文“实现applet跨框架和浏览器窗口彼此通信[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
择要
您大概认为能让 applet 彼此通信的唯一挑选就是利用 getApplet.不幸的是,getApplet 办法仅返回与发出调用的 applet 在同一个 HTML 页面上的 applet,这样就限制了您通过 applet 间的通信构建风趣界面的方法.这篇本领阐明的替换办法能使处于差别框架乃至差别浏览器窗口中的 applet 彼此调用对方的办法.
java.applet 包中的 AppletContext 类包含两个成员办法,即 getApplet 和 getApplets.通过利用这两个办法,一个 applet 便可以找到其他 applet 并调用它们的办法.要这样做必须满意下面的安全要求:
这些 applet 来自同一个服务器上的同一个目录中.
这些 applet 运行于同一个浏览器窗口中的同一个页面上.
这样计划安全限制大概有很好的缘由;但是,后一个要求限制了操纵 applet 间的通信制作风趣的多 applet 界面的方法.
试考虑这样一种情形:
您刚编好一个很好的股票市场交易 applet,并决意为它编写一个杰出的帮忙系统.您但愿帮忙系统也是一个 applet,并但愿将它与股票市场交易 applet 在差别的浏览器框架中运行.您作出这个决意大概是出于网站构造方面的考虑,也大概是出于始终显示帮忙系统的需求.别的,您但愿使帮忙系统按照用户当前在股票交易 applet 中举行的操作转至精确的信息/指导(就像 Microsoft Office 套件中的“回形针”一样).您乃至筹划在帮忙系统中编制向导,这些向导可远程指出问题,并可远程履行股票市场交易 applet 中的任务.
这一筹划中表现的思惟很不错.但是,因为这两个 applet 处于差别的页面上,所以 AppletContext 中的 Java API 无法帮忙您实现这个设法 -- 但这篇本领可以帮忙您.
利用 AppletContext API
在阐明 applet 间通信的替换机制前,我将首先扼要阐明一下 getApplet 和 getApplets 这两个办法是若何工作的.一个 applet 通过利用 getApplet 办法可以按名称找到同一个 HMTL 页面中的另一个 applet,而通过利用 getApplets 办法可以找到同一个页面上的全部 applet.这两个办法假如成功履行,则会向调用者返回一个或多个 Applet 对象.调用者一旦找到一个 Applet 对象,它便大概调用这个 Applet 的公用办法.
假定有下面这样一段 HTML 代码:
<applet code="Applet1" width="400" height="100" name="app1">
</applet>
<br>
<applet code="Applet2" width="400" height="100" name="app2">
</applet>
<br>
通过利用 applet 标志中的 name 属性,您便可以用下面的方法引用一个特定的 applet:
Applet theOtherApplet = getApplet("app1");
theOtherApplet.anyMethod(); //调用任一个公用办法
大概,您也可以用以下的代码来检索这个页面上的全部 applet:
Enumeration allAppletsOnSamePage = getApplets();
while(allAppletsOnSamePage.hasMoreElements()) {
Applet appl = (Applet) allAppletsOnSamePage.nextElement();
appl.anyMethod(); //调用任一个公用办法
}
当发出调用的 applet 在它所在的同一个 HTML 页面上检索到一个或几个 applet 之后,它便可以调用这些 applet 的公用办法.
以上是“实现applet跨框架和浏览器窗口彼此通信[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |