/**
*Title:TestMath2_16.java
*Description:区别于TestMath_16中的写法。这一种方法更有优势。
*@Copyright:
*@Company:
*@autor:firefly
*@version:1.0
*@time:2012.10.2
*/
//不明白的语句可以看TestMath_16.java.
import java.awt.*;
import java.awt.event.*;
public class TestMath2_16 {
public static void main(String[] args) {
new TFFrame().launchFrame();
}
}
class TFFrame extends Frame {
TextField num1, num2, num3; //这里是成员变量不同于TestMath_16中的局部变量。
public void launchFrame() {
num1 = new TextField(10);
num2 = new TextField(10);
num3 = new TextField(15);
Label lblPlus = new Label("+");
Button btnEqual = new Button("=");
btnEqual.addActionListener(new Monitor(this));
setLayout(new FlowLayout());
add(num1);
add(lblPlus);
add(num2);
add(btnEqual);
add(num3);
pack();
setVisible(true);
}
}
class Monitor implements ActionListener {
TFFrame f = null;
Monitor (TFFrame f) { //与TestMath_16的异同:相同的是,都是用的Monitor的构造方法;
//不同的是,这里传的是TFFrame而TestMath_16传的是局部变量是的值,如果值非常多的话用那一种方法就不是很好了。
this.f = f;
}
public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(f.num1.getText());
int n2 = Integer.parseInt(f.num2.getText());
//num3.setText("" + (n1+n2));
f.num3.setText(String.valueOf(n1+n2));
}
}