Applet之间的通信

时间:2010-12-29 16:10:08

标签: applet

请检查以下代码示例:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class pp extends Applet implements ActionListener
{
    TextField t;
    Button    b;

    public void init()     
    {
        setLayout(new FlowLayout());
        t= new TextField(10 );
        b = new Button("Send");
        b.addActionListener(this);
        add(t);
        add(b);
    }

    public void actionPerformed(ActionEvent e) 
    {
        String str=t.getText();
        dc a2 =(dc)getAppletContext().getApplet("a2");
           if ( a2 != null ) 
               {
                  a2.append(str);
               }
           else 
           {
              System.out.println("Applet not found?");
           }
     }
}

和第二个小程序代码:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*<Applet code="dc" height=400 width=400></Applet>*/
public class dc extends Applet
{
    TextArea t;

    public void init()
    {
        setLayout(new FlowLayout());
        t=new TextArea(5,40);
        add(t);
    }

    public void append(String msg)
    {
        t.setText(msg);
    }
}

这是HTML代码:

<HTML><HEAD></HEAD><BODY>
<APPLET CODE="pp.class"   
    HEIGHT=200 WIDTH=150>
</APPLET>
<APPLET CODE="dc.class"  
    HEIGHT=200 WIDTH=400>
</APPLET>
</BODY></HEAD>

不知道为什么它不起作用。该程序用于在同一页面中的两个小程序之间进行通信。谁能告诉我这里有什么问题?

2 个答案:

答案 0 :(得分:1)

请参阅Inter applet communication

这与你正在做的非常相似。

答案 1 :(得分:1)

第一个applet:

import java.awt.*;
import java.applet.*;
public class ONE extends Applet
{
    TextArea ta;
    public void init()
    {
        ta=new TextArea(" ");
        add(ta);
    }
    public void putText(String s)
    {
        ta.appendText(s+"\n");
    }
}

第二小程序:

import java.io.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;


public class TWO extends Applet implements ActionListener
{
    TextField tf;
    Applet r;
    Button b;
    public void init()
    {
        tf=new TextField(20);
        add(tf);
        b=new Button("SUMBIT");
        add(b);
        b.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e)
    {   r=null;
        r= getAppletContext().getApplet("ONE");
        if (r!=null)
        {
            if(e.getSource()==b)
            {
                ONE ma= (ONE) r;
                ma.putText(tf.getText());
                tf.setText("");
            }
        }       
    }
}

在执行的操作中使用上述代码。

HTML:

<html>
<body>
<applet code="TWO" width = 150 height=150 name=TWO>
</applet>
<br></br>
<br></br>
<br></br>
<applet code="ONE" width = 200 height=200 name=ONE>
</applet>
</body>
</html>

使用appletviewer运行它。