Java学校项目7之简易计算器(没有加上异常处理机制)

设计一个简单计算器,如下图1所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。
在这里插入图片描述

😂😂😂哈哈哈,时隔多天,我发现很多同学已经看到我博客了,那这次我就不给这个程序加入异常处理了吧。对于代码,同学们可以研究研究,这次的程序就不给完整的了😂

package 实验七;
/**
 * 简易的计算机
 * 没加入了异常数据处理
 */
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
public class Calculator extends JFrame{
	JPanel jp1,jp2,jp3,jp4,jp5;
	JLabel jl1;
	JButton jb1,jb2,jb3,jb4,jb5,jb6;
	JTextField jtf1,jtf2,jtf3;
	static JDialog d;//异常时弹出的窗口
	public static void main(String[] args) {
		Calculator c=new Calculator();
	}
	Calculator()
	{
		jl1=new JLabel("请输入两个计算数据");//标签
 		jtf1=new JTextField(15);//文本框
		jtf2=new JTextField(15);//文本框
		//设置文本框高和宽
		
		//加减乘除按钮
		jb1=new JButton("+");
		jb2=new JButton("-");
		jb3=new JButton("*");
		jb4=new JButton("/");
		//添加事件处理
		jb1.addActionListener(new addtion());
		jb2.addActionListener(new sub());
		jb3.addActionListener(new multiplication());
		jb4.addActionListener(new division());
		
		jtf3=new JTextField(15);//文本框
		
		jb5=new JButton("清除");//按钮清除
		jb6=new JButton("退出");//按钮退出
		//添加事件处理
		jb5.addActionListener(new clear());
		jb6.addActionListener(new out());
		
		//加入Panel
		//标签
		jp1=new JPanel();
		jp1.add(jl1);
		//文本框
		jp2=new JPanel();
		jp2.add(jtf1);
		jp2.add(jtf2);
		//加减乘除四个按钮
		jp3=new JPanel();
		jp3.add(jb1);
		jp3.add(jb2);
		jp3.add(jb3);
		jp3.add(jb4);
		//输出的文本框
		jp4=new JPanel();
		jp4.add(jtf3);
		//清楚和退出按钮
		jp5=new JPanel();
		jp5.add(jb5);
		jp5.add(jb6);
		//加入窗口中
		this.setLayout(new GridLayout(5,1,30,30));
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		this.add(jp4);
		this.add(jp5);
		
		//属性
		this.setTitle("简易计算器");
		this.setSize(450,400);//窗口大小
		this.setResizable(false);//禁止窗口大小改变
		this.setLocationRelativeTo(null);//设置窗口位置位于屏幕的中间
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	class addtion implements ActionListener//加法的按钮的事件
	{
		@Override
		public void actionPerformed(ActionEvent e){
			double a=0,b=0;
				a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
				b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
			jtf3.setText(String.valueOf(a+b));//文本框输出结果
		}
	}
	class sub implements ActionListener//减法的按钮的事件
	{
		@Override
		public void actionPerformed(ActionEvent e){
			double a=0,b=0;
				a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
				b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
			jtf3.setText(String.valueOf(a-b));//文本框输出结果
		}	
	}
	class multiplication implements ActionListener//乘法的按钮的事件
	{
		@Override
		public void actionPerformed(ActionEvent e){
			double a=0,b=0;
				a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
				b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
			jtf3.setText(String.valueOf(a*b));//文本框输出结果
		}
	}
	class division implements ActionListener//除法的按钮的事件
	{
		@Override
		public void actionPerformed(ActionEvent e){
			double a,b;
			
				a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
				b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
				jtf3.setText(String.valueOf(a/b));//文本框输出结果
			//判断除数是否为0
			if(!jtf3.getText().isEmpty())//判断第三个文本是否为空
				if(Double.valueOf(jtf3.getText()).isInfinite())//判断第三个文本是否为无穷大
				{
					//创建窗口,显示输入错误
					JFrame j=new JFrame();
					d=new JDialog(j,"提示");
					JLabel jb=new JLabel("除数不能为零,请关闭本窗口重新输入");
					d.add(jb);
					d.setSize(210,100);
					d.setLocationRelativeTo(null);//窗口在屏幕中间
					d.setVisible(true);
				}
		}
	}
	class clear implements ActionListener//清楚的按钮的事件
	{
		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			jtf1.setText("");
			jtf2.setText("");
			jtf3.setText("");
		}
	}
	class out implements ActionListener//退出的按钮的事件
	{
		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			System.exit(0);//正常退出程序,结束虚拟机里面的内容
		}
	}
}
  • 😃联系交流QQ:2283093518
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值