利用方法:持有对方引用
import java.awt.*;
import java.awt.event.*;
public class TextFieldAction2{
public static void main(String arg []){
new TextFieldFrame().launchFrame(); /*多采用继承方法new一个Frame*/
}
}
class TextFieldFrame2 extends Frame{
TextField num1,num2,num3; /*把他们设为成员变量,为了访问方便*/
public void launchFrame(){
num1=new TextField(10);
num2=new TextField(10);
num3=new TextField(15);
Label pluse=new Label("+"); /*new一个+标签*/
Button b=new Button("="); /*new一个=按钮*/
Monitor4 m=new Monitor4(this); /*在这里一定要监听的是他自己*/
b.addActionListener(m); /*给按钮配上监听器*/
setLayout(new FlowLayout()); /*设置为流水线行布局*/
add(num1); /*按次序添加各种组件*/
add(pluse);
add(num2);
add(b);
add(num3);
pack();
setVisible(true);
}
}
class Monitor4 implements ActionListener{
private TextFieldFrame2 tff; /*把要监听的对象所在类设为监听器的成员变量*/
public Monitor4(TextFieldFrame2 tff){
this.tff=tff;
}
public void actionPerformed(ActionEvent e){
int n1=Integer.parseInt(tff.num1.getText());/*TextField 对象返回值是Object类型,
要进行四则运算就需要转换成基本类型*/
int n2=Integer.parseInt(tff.num2.getText());
tff.num3.setText(""+(n1+n2)); /* 把num3的值设为n1+n2*/
}
}