标签:textfield
import java.awt.*; import java.awt.event.*; public class TFMath { public static void main(String[] args) { new TFFrame().launchFrame(); } } class TFFrame extends Frame { TextField num1,num2,num3; public void launchFrame() { num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15); Label l = new Label("+"); Button b = new Button("="); setLayout(new FlowLayout()); add(num1); add(l); add(num2); add(b); add(num3); pack(); setVisible(true); b.addActionListener(new MyMonitor(this)); } } class MyMonitor implements ActionListener { /* TextField num1, num2, num3; public MyMonitor(TextField num1, TextField num2, TextField num3) { this.num1 = num1; this.num2 = num2; this.num3 = num3; } */ TFFrame tf = null; public MyMonitor(TFFrame tf) { this.tf = tf; } public void actionPerformed(ActionEvent e) { // System.out.println("OK"); int n1 = Integer.parseInt(tf.num1.getText()); int n2 = Integer.parseInt(tf.num1.getText()); tf.num3.setText("" +(n1 + n2)); } }
设置三个TextField,分别放两个加数和一个结果,我们的事件监视器是对按钮 = 进行监控的,如何获取三个TextField呢?在这里,三个TextField是其他类的成员变量,是无法正常访问的,这里提供了两种方法:
第一种是将三个TextField当成是监控器类的参数,如程序中写的那样:
TextField num1, num2, num3;
public MyMonitor(TextField num1, TextField num2, TextField num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
这是最麻烦的发放,将其设为监控器的参数,那么监控器就可以访问了,然后可以对其进行操作。
第二种方法是较为简单的此后又对方的引用,如程序中:
TFFrame tf = null;
public MyMonitor(TFFrame tf) {
this.tf = tf;
}
其实和上一中方法差不多,这里是将其他的类整个作为自己的成员变量,相当于对其他类进行引用。通俗的讲,连别的类都是自己的参数了,那么这个类中的成员变量我们当然乐意访问了。
其实还有更为简单的方法,那就是内部类,我们下次再说。
标签:textfield
原文地址:http://blog.csdn.net/erpng/article/details/43340229