<import java.awt.*;
import java.awt.event.*;
public class TFMath {
public static void main(String [] args) {
new TFFrame();
}
}
class TFFrame extends Frame {
TextField tf1,tf2,tf3;
TFFrame() {
setLayout(new FlowLayout());//这种方法使用这个类的变量时必须定义为成员变量
tf1 = new TextField(10);//设置宽度
tf2 = new TextField(10);
tf3 = new TextField(15);
Label lp = new Label("+");//静态文本
Button b = new Button("=");
//Monitor mr = new Monitor(this);//重要 持有对方引用
b.addActionListener(new Monitor(this));
add(tf1);
add(lp);
add(tf2);
add(b);
add(tf3);
setVisible(true);
pack();
}
}
class Monitor implements ActionListener {
TFFrame tf = null;
public Monitor(TFFrame tf) {
this.tf = tf;
}
//非常重要 持有对方引用
public void actionPerformed(ActionEvent e) {
int nm1 = Integer.parseInt(tf.tf1.getText());
int nm2 = Integer.parseInt(tf.tf2.getText());
//tf.tf3.setText(String.valueOf(nm1+nm2));
tf.tf3.setText(""+(nm2+nm1));
}
}
>这是我写的计算器的小程序,麻烦给我深入讲讲持有对方引用的作用和用法 |