利用文本框文本域做一个简单的+-*/计算器

package Week8;
import java.awt.*;
import java.awt.event.*;
public class EasyCounter {
    public static void main(String[] args) {
        Frame f = new Frame("EasyCouter");
        f.setBounds(1000, 200, 450, 100);
        //选择布局方式
        f.setLayout(new FlowLayout());
        f.setResizable(false); // 设置为大小不可变的
        //创建一个按钮,用于提示,其中op只能为(+-*/)
        Button Tips = new Button("a                                op         b                                =                                            ");
        //创建文本框
        TextField tf1 = new TextField(10);//用于输入第一个数值
        TextField op = new TextField(3);//用于输入操作符+-*/
        TextField tf2 = new TextField(10);//用于输入第二个数值
        //创建按钮
        Button bu = new Button("=");//用以计算结果
        //创建文本域
        TextArea Pr = new TextArea(1,15);//显示结果
        f.add(Tips);
        f.add(tf1);f.add(op);f.add(tf2);f.add(bu);f.add(Pr);//添加按钮文本框文本域
        f.addWindowListener(new WindowAdapter() {//侦听窗口关闭就结束程序
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        
        bu.addActionListener(new ActionListener() {//侦听=按钮,每次点击=按钮计算结果
            @Override
            public void actionPerformed(ActionEvent e) {          	               
                double a = Double.valueOf(tf1.getText().trim());//获得第一个文本框的数值
                double b = Double.valueOf(tf2.getText().trim());//获得第二个文本框的数值
                /*
                 * Double.valueOf(String s)
				 * 会将St转换并返回一个双精度的数值,如果St含有其他字符,将会异常
				 * 例如St="asofnw9o";代码会异常
				 * 例如St="1649.615";代码正确
				 */
                GetResult(a,op.getText().trim(),b);//计算结果
                tf1.requestFocus();//光标移动到第一个文本框
            }
			private void GetResult(double a, String op, double b) {
				switch(op) {
				case "+": Pr.append(a+b+"\r\n");break;
				case "-": Pr.append(a-b+"\r\n");break;
				case "*": Pr.append(a*b+"\r\n");break;
				case "/":
					if(b!=0) Pr.append(a/b+"\r\n");
					else Pr.append("除数为0结果错误\r\n");
					break;					
				}				
			}
        });
        f.setVisible(true);//窗口可见
    }
}

有注释不再过多赘述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值