同网页内两个Applet通信

王朝html/css/js·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

程序代码:

Applet1.java 源码

------------------------------------------------

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

public class Applet1 extends Applet

{

TextField tf = new TextField("Applet2,你能收到吗?",20); // 定义文本框

Button b = new Button("发送到Applet2"); // 发送按钮

public void init()

{

setLayout(new FlowLayout()); // 设置布局管理器为FlowLayout

add(tf);

add(b);

}

public boolean action(Event ev, Object obj) // 处理按钮事件

{

if(ev.target instanceof Button) // 如果事件是从按钮来的

{

String msg = tf.getText();

Applet2 applet2 = (Applet2)getAppletContext().getApplet("Applet2");

if(applet2 != null) // 取Applet2的句柄

{

applet2.AppendText(msg); // 调用applet2中的函数

return true;

}

else

{

tf.setText("没有找到Applet2");

return false;

}

}

return false;

}

}

=================================================

Applet2.java 源码

-------------------------------------------------

import java.applet.Applet;

import java.awt.*;

public class Applet2 extends Applet

{

TextField text = new TextField("",30);

public void init()

{

setLayout(new FlowLayout());

add(text);

}

public void AppendText(String msg) //

{

text.setText("我收到了!是\""+msg+"\"");

}

}

说明:Applet类中可以取得网页的上下文句柄,因此,同网页内的两个Applet是可以互相访问到的,在本例中注意Applet2的HTLM代码一定要加上name="Applet2",否则无法取得Applet2得句柄.编译的时候先编译Applet2,这样Applet1中才能引用Applet2这个类.JB下例子通不过,需要在IE中执行.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航