Sender.java
nameField =new TextField( getParameter (
"RECEIVERNAME"),10 );
...
Applet receiver = null;
String receiverName = nameField.getText(); //Get name to search for.
receiver = getAppletContext().getApplet(receiverName);
if (receiver != null) {
if ( !(receiver instanceof Receiver)){
status.appendText("Found applet named"
+ receiverName + ", "
+"but it's not a Receiver object.\n");
}else{
status.appendText("Found applet named"
+ receiverName + ".\n"
+ " Sending message to it.\n");
//Cast the receiver to be a Receiver object
// so that the compiler will let us call a Receiver method.
((Receiver)receiver).processRequestFrom(myName);
}
}
Receiver.java
public void processRequestFrom(String sName){
label.setText("Received message from "+ sName + "!");
}
(4)程序:Sender.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Enumeration;
public class Sender extends Applet implements ActionListener {
private String myName;
private TextField nameField;
private TextArea status;
private String newline;
public void init() {
GridBagLayout gridBag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(gridBag);
Label receiverLabel = new Label("Receiver name:",Label.RIGHT);
gridBag.setConstraints(receiverLabel, c);
add(receiverLabel);
//获得接收者名
nameField = new TextField(getParameter("RECEIVERNAME"),10);
c.fill = GridBagConstraints.HORIZONTAL;
gridBag.setConstraints(nameField, c);
add(nameField);
nameField.addActionListener(this);
Button button = new Button("Send message");
c.gridwidth = GridBagConstraints.REMAINDER;
c.anchor = GridBagConstraints.WEST;
c.fill = GridBagConstraints.NONE;
gridBag.setConstraints(button, c);
add(button);
button.addActionListener(this);
status = new TextArea(5, 60);
status.setEditable(false);
c.anchor = GridBagConstraints.CENTER;
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.weighty = 1.0;
gridBag.setConstraints(status, c);
add(status);
myName = getParameter("NAME"); //获得本applet的名字
Label senderLabel = new Label("(My name is " + myName + ".)",Label.CENTER);