现在的位置: 首页 > 综合 > 正文

《java—简单计算器的实现》

2013年02月20日 ⁄ 综合 ⁄ 共 1532字 ⁄ 字号 评论关闭
import java.awt.*;
import java.awt.event.*;

class  AwtCount
{
	private Frame f;
	private TextField tf1;
	private TextField tf2;
	private TextField sign;
	private TextField tf;
	private Button but;
	
	private Dialog d;
	private Button okBut;
	private Label lab;

	AwtCount()
	{
		init();
	}
	public void init()
	{
		f = new Frame("计算工具");
		f.setBounds(300,100,300,100);
		f.setLayout(new FlowLayout());//设置布局

		tf1 = new TextField(5);
		sign = new TextField(1);
		tf2 = new TextField(5);	
		but = new Button("=");
		tf = new TextField(5);
		
		d = new Dialog(f,"提示信息",true);
		d.setBounds(400,200,150,100);
		d.setLayout(new FlowLayout());
		lab = new Label();
		okBut = new Button("确定");

		d.add(lab);
		d.add(okBut);
		
		f.add(tf1);
		f.add(sign);
		f.add(tf2);
		f.add(but);
		f.add(tf);
		myEvent();
		f.setVisible(true);
	}
	
	private void  myEvent()
	{	
		//为=按钮添加监听事件
		but.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				double num = 0.0;
				double num1 = Double.parseDouble(tf1.getText());
				double num2 = Double.parseDouble(tf2.getText());
				
				String ssign= new String(sign.getText());
				if (ssign.compareTo("+") == 0)
					num = num1 + num2;
				else if (ssign .compareTo("-") == 0)
					num = num1 - num2;
				else if (ssign.compareTo("*") == 0)
					num = num1 * num2;
				else if (ssign.compareTo("/") == 0)
					num = num1 / num2;
				else{
					String info = "您输入的符号有误!";
					lab.setText(info);
					d.setVisible(true);
				}
					
				tf.setText(new Double(num).toString());
			}
		});
		//为关闭按钮添加监听事件
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);	
			}
		});
		//为弹出对话框的按钮设置监听
		okBut.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				d.setVisible(false);
			}
		});
	}

	public static void main(String[] args) 
	{
		new AwtCount();
	}
}
/*
要用好窗体首先要明确各个组件之间的关系,了解监听事件与被监听对象以监听的内容。
*/

抱歉!评论已关闭.