码迷,mamicode.com
首页 > 其他好文 > 详细

简易计算器

时间:2015-01-31 16:28:16      阅读:174      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!