服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

同网页之内两个applet通信


  程序代码:
  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) // <<--- 声明为公开方法以便applet1调用
  {
  text.settext("我收到了!是/""+msg+"/"");
  }
  }
  说明:applet类中可以取得网页的上下文句柄,因此,同网页内的两个applet是可以互相访问到的,在本例中注意applet2的htlm代码一定要加上name="applet2",否则无法取得applet2得句柄.编译的时候先编译applet2,这样applet1中才能引用applet2这个类.jb下例子通不过,需要在ie中执行.

扫描关注微信公众号