/*
时间:2015年3月21日08:54:56
测试目的:理解持有对方引用的方便性
Frame窗体创建的方法有两种,一种是直接使用Frame类,另一种是继承Frame类
自定义窗体类的实现。
程序理解:从MyListener类的方法中访问TextFieldMath类的成员变量的方法。
一是使用构造方法把三个成员变量全部传给MyListener的构造方法,这样就可以
直接访问这三个成员变量
第二种方法是使用构造方法直接把拥有这三个成员变量的类对象传递给MyListener
的构造方法,这种方法更加简单。代码紧凑,耦合性更低
*/
import java.awt.*;
import java.awt.event.*;
时间:2015年3月21日08:54:56
测试目的:理解持有对方引用的方便性
Frame窗体创建的方法有两种,一种是直接使用Frame类,另一种是继承Frame类
自定义窗体类的实现。
程序理解:从MyListener类的方法中访问TextFieldMath类的成员变量的方法。
一是使用构造方法把三个成员变量全部传给MyListener的构造方法,这样就可以
直接访问这三个成员变量
第二种方法是使用构造方法直接把拥有这三个成员变量的类对象传递给MyListener
的构造方法,这种方法更加简单。代码紧凑,耦合性更低
*/
import java.awt.*;
import java.awt.event.*;
public class TextFieldMath extends Frame{
TextField t1, t2, t3;
public static void main(String[] args) {
new TextFieldMath().launch();
}
public void launch() {
t1 = new TextField(10);
t2 = new TextField(10);
t3 = new TextField(15);
Label lab = new Label("+");
Button b = new Button("=");
b.addActionListener(new MyListener(this));
setLayout(new FlowLayout());
add(t1);
add(lab);
add(t2);
add(b);
add(t3);
pack();
setVisible(true);
}
}
TextField t1, t2, t3;
public static void main(String[] args) {
new TextFieldMath().launch();
}
public void launch() {
t1 = new TextField(10);
t2 = new TextField(10);
t3 = new TextField(15);
Label lab = new Label("+");
Button b = new Button("=");
b.addActionListener(new MyListener(this));
setLayout(new FlowLayout());
add(t1);
add(lab);
add(t2);
add(b);
add(t3);
pack();
setVisible(true);
}
}
class MyListener implements ActionListener {
TextFieldMath tf = null;
public MyListener(TextFieldMath tf) {
this.tf = tf;
}
public void actionPerformed(ActionEvent e) {
//int i1 = Integer.pareseInt((TextField)e.getSource().getText());
//int i2 = Integer.valueOf((TextField)e.getSource().getText());
int i1 = Integer.parseInt(tf.t1.getText());
int i2 = Integer.parseInt(tf.t2.getText());
tf.t3.setText("" + (i1+i2));
}
}
TextFieldMath tf = null;
public MyListener(TextFieldMath tf) {
this.tf = tf;
}
public void actionPerformed(ActionEvent e) {
//int i1 = Integer.pareseInt((TextField)e.getSource().getText());
//int i2 = Integer.valueOf((TextField)e.getSource().getText());
int i1 = Integer.parseInt(tf.t1.getText());
int i2 = Integer.parseInt(tf.t2.getText());
tf.t3.setText("" + (i1+i2));
}
}