java实现简单计算器

学习完java组件与事件处理,写了个简单的计算器。事件处理需要向发生事件源的组件注册监视器,产生事件源后将事件对象传递给监视器,然后监视器调用对应的方法处理事件。

package test;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;


public class aa {	
	Button deng = new Button("   =    ");	
	TextField  tx1 = new TextField(8);//创建相应的组件
	TextField  tx2 = new TextField(8);
	TextField  tx3 = new TextField(8);
	Choice list = new Choice();	
	public static void main(String[] args) {		
		new aa().init();		
	}	
	public void init(){
		list.add("+");list.add("-");list.add("*");list.add("/");		
		deng.addActionListener(new ActionHandler());		
		Frame f = new Frame();	//声明容器	
		f.setLayout(new FlowLayout());	//设置布局	
		f.add(tx1);
		f.add(list);
		f.add(tx2);
		f.add(deng);
		f.add(tx3);		
		f.setSize(400, 300);
		f.setLocation(500, 350);		
		f.setVisible(true);		
	}
class ActionHandler  implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent e) {		
		/*
		 * 根据符号,进行运算,放置结果,晴空前面输入数据
		 */

		//通过实践可以得到事件源,通过实践源可以得到容器,通过容器可以打得所有的组件。		
		String op1  =tx1.getText();
		String op2 = tx2.getText();		
		double a;
		double b;
		try {
			a = Double.parseDouble(op1);
			b = Double.parseDouble(op2);
		} catch (NumberFormatException e1) {			
			tx3.setText("输入数据不正确!!,重新输入");			
			return;
		}		
		double r = 0.0;		
		String op = list.getSelectedItem();		
		char c = op.charAt(0);		
		switch (c) {
		case '+':
			r = a+b;
			break;
		case '-':
			r = a-b;
			break;
		case '*':
			r = a*b;
			break;
		case '/':
			r = a/b;
			break;
		}		
		tx3.setText(r+"");		
		tx1.setText("");
		tx2.setText("");		
	}	
}
}










你可能感兴趣的:(JAVA)