当前位置: 技术问答>java相关
急,我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet1中点击一个按钮来打开这个Applet2.谢谢
来源: 互联网 发布时间:2015-05-12
本文导语: 我想问一下执行的命令语句,主要是如何打开一个已知的Applet或Dialog语句的命令,请举一例说明好吗?谢过! | 1. 同一网页内的Applet的通讯 Applet类中可以取得上下文的句柄,所...
我想问一下执行的命令语句,主要是如何打开一个已知的Applet或Dialog语句的命令,请举一例说明好吗?谢过!
|
1. 同一网页内的Applet的通讯
Applet类中可以取得上下文的句柄,所以同一网页内的Applet是可以通讯的。
例如:同一页面(test.html)中存在Applet1和Applet2。Applet1欲调用Applet2的方法。在Applet1类需要调用Applet2的地方,添加这样一条语句:Applet2 applet2 = (Applet2)getAppletContext().getApplet("Applet2")即可。判断Applet2的实例applet2是否存在,如果存在即可调用它的方法。编译时要先编译Applet2。在test.html对Applet2的声明中,一定要注意声明Applet2的name=“Applet2”
2. Applet跨框架和浏览器窗口彼此通信
java.applet包中的AppletContext类中包含下面两个成员方法:getApplet();getApplets()。通过这两个方法实现applet之间的通讯。但是,调用这两个方法必须满足以下两个条件: 这些applet来自同一服务器的同一目录下;这些applet运行于同一浏览器窗口的同一页面中。但是,applet间跨页面通讯的方法基于下面事实:如果两个applet的codebase相同,即使它们在不同的窗口中,它们也共享同一运行环境。Codebase就是加载applet的路径。因为运行环境是共享的,所以所有applet实例都可以访问静态域和静态结构,这样就可以利用这些静态域和静态结构实现Applet跨框架和浏览器窗口彼此通信。
可以用下面两种方法具体实现:
⑴在Applet2.init()中定义指向自己的引用,在Applet1中声明Applet2后调用该引用即可;
⑵更通用的方法是,创建一个类似hashtable的类,用来在静态数据结构中存储applet的引用。在Applet2.start()中将当前实例插入这个通用类中。在Applet2.stop()中将此实例撤销。而Applet1欲对Applet2调用时,只要在通用类中通过key查找某实例是否存在即可。
Applet类中可以取得上下文的句柄,所以同一网页内的Applet是可以通讯的。
例如:同一页面(test.html)中存在Applet1和Applet2。Applet1欲调用Applet2的方法。在Applet1类需要调用Applet2的地方,添加这样一条语句:Applet2 applet2 = (Applet2)getAppletContext().getApplet("Applet2")即可。判断Applet2的实例applet2是否存在,如果存在即可调用它的方法。编译时要先编译Applet2。在test.html对Applet2的声明中,一定要注意声明Applet2的name=“Applet2”
2. Applet跨框架和浏览器窗口彼此通信
java.applet包中的AppletContext类中包含下面两个成员方法:getApplet();getApplets()。通过这两个方法实现applet之间的通讯。但是,调用这两个方法必须满足以下两个条件: 这些applet来自同一服务器的同一目录下;这些applet运行于同一浏览器窗口的同一页面中。但是,applet间跨页面通讯的方法基于下面事实:如果两个applet的codebase相同,即使它们在不同的窗口中,它们也共享同一运行环境。Codebase就是加载applet的路径。因为运行环境是共享的,所以所有applet实例都可以访问静态域和静态结构,这样就可以利用这些静态域和静态结构实现Applet跨框架和浏览器窗口彼此通信。
可以用下面两种方法具体实现:
⑴在Applet2.init()中定义指向自己的引用,在Applet1中声明Applet2后调用该引用即可;
⑵更通用的方法是,创建一个类似hashtable的类,用来在静态数据结构中存储applet的引用。在Applet2.start()中将当前实例插入这个通用类中。在Applet2.stop()中将此实例撤销。而Applet1欲对Applet2调用时,只要在通用类中通过key查找某实例是否存在即可。