首页 > 学院 > 开发设计 > 正文

同网页之内两个Applet通信

2019-11-18 11:56:12
字体:
来源:转载
供稿:网友

  程序代码:
  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中执行.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表