java实现一个简单的计算器的加减乘除

刚把计算器程序做出来,想迫不及待发表自己的感想,对我现在的水平来说做出一个计算器图形界面并且实现相应的加减乘除运算是一件让人是十分秃头的事情,其中我参考了这位博主的运算功能的实现,并在其代码上自己做了一些修改,大家有兴趣可以看下,他的有平方和删除键的实现:https://blog.csdn.net/wu2304211/article/details/52040009。谈一下自己的感悟和学到的东西:经历了三个晚上的奋战,不断地改正代码中出现的问题(通过百度一些搜索引擎去查询并改正错误,真的是一个很大的提升)然后在自己的代码中不断的思考那个地方出了问题也确实是一个思维的锻炼,接下来说一下自己设计计算器的思路:
首先先实现一个图形界面(使用GridLayout布局管理器,建立按钮JButton,显示数字和结果的JTextField);
然后:对JButton和JTextField加上监听处理(ActionListener);
最后:对监听事件进行处理,实现相应的功能运算。
//加法运算:
加法
结果
//减法运算:
减法
结果
//乘法运算
乘法
结果
//除法运算
除法
结果
//相应代码

package demo05;

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

import javax.swing.*;

public class Calculator implements ActionListener{
	GridLayout layout;
	JButton button1,button2,button3,button4,button5,button6,button7,button8,button9,button10,button11,button12,button13,button14,button15,button16;
	JSplitPane jsp;
	JFrame frame;
//	JTextArea area;
	JPanel pane1,pane2;
	JTextField jtf;
	public Calculator(){
		frame=new JFrame("计算器");
		frame.setSize(new Dimension(400,600));
		layout=new GridLayout(4,4);
		pane1=new JPanel(layout);
		jtf=new JTextField();
		jtf.setBounds(0, 0, 400, 200);
		button1=new JButton("7");
		button2=new JButton("8");
		button3=new JButton("9");
		button4=new JButton("/");
		button5=new JButton("4");
		button6=new JButton("5");
		button7=new JButton("6");
		button8=new JButton("*");
		button9=new JButton("1");
		button10=new JButton("2");
		button11=new JButton("3");
		button12=new JButton("+");
		button13=new JButton(".");
		button14=new JButton("0");
		button15=new JButton("=");
		button16=new JButton("-");
		pane1.add(button1);
		pane1.add(button2);
		pane1.add(button3);
		pane1.add(button4);
		pane1.add(button5);
		pane1.add(button6);
		pane1.add(button7);
		pane1.add(button8);
		pane1.add(button9);
		pane1.add(button10);
		pane1.add(button11);
		pane1.add(button12);
		pane1.add(button13);
		pane1.add(button14);
		pane1.add(button15);
		pane1.add(button16);
		jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,jtf,pane1);
		frame.add(jsp);
		button1.addActionListener(this);
		button2.addActionListener(this);
		button3.addActionListener(this);
		button4.addActionListener(this);
		button5.addActionListener(this);
		button6.addActionListener(this);
		button7.addActionListener(this);
		button8.addActionListener(this);
		button9.addActionListener(this);
		button10.addActionListener(this);
		button11.addActionListener(this);
		button12.addActionListener(this);
		button13.addActionListener(this);
		button14.addActionListener(this);
		button15.addActionListener(this);
		button16.addActionListener(this);
		jtf.addActionListener(this);
		frame.setVisible(true);
	}
	@Override
	public void actionPerformed(ActionEvent event) {
		Object obj=event.getSource();
		if(obj instanceof JButton){
			JButton button=(JButton)obj;
			if(button14==button){
			if(jtf.getText().equals("0")){
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"0");
			}
			}
			if(button9==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("1");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"1");
			}
			}
			if(button10==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("2");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"2");
			}
			}
			if(button11==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("3");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"3");
			}
			}
			if(button5==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("4");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"4");
			}
			}
			if(button6==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("5");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"5");
			}
			}
			if(button7==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("6");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"6");
			}
			}
			if(button1==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("7");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"7");
			}
			}
			if(button2==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("8");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"8");
			}
			}
			if(button3==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("9");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"9");
			}
			}
			if(button13==button){
				if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"");
			}
			}
			if(button12==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("+");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"+");
			}
			}
			if(button16==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("-");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"-");
			}
			}
			if(button8==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("*");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"*");
			}
			}
			if(button4==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText("/");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+"/");
			}
			}
			if(button13==button){
			if(jtf.getText().equals("0")){
				jtf.setText("");
				jtf.setText(".");
				jtf.requestFocus();
			}
			else{
				String str=jtf.getText();
				jtf.setText(str+".");
			}
			}
			//等号实现加减乘除功能
			if(button15==button){
				if(jtf.getText().indexOf("+")!=-1){
					String str=jtf.getText();
					int i=str.indexOf("+");
					String s=str.substring(0, i);
					String s1=str.substring(i+1,str.length());
					Double d1=Double.parseDouble(s);
					Double d2=Double.parseDouble(s1);
					double result=d1+d2;
					String str1=String.valueOf(result);
					jtf.setText(str1);
}

			
			//减法运算
				else
					if(jtf.getText().indexOf("-")!=-1){
				
				String str=jtf.getText();
				int i=str.indexOf("-");
				String s=str.substring(0, i);
				String s1=str.substring(i+1,str.length());
				Double d1=Double.parseDouble(s.trim());
				Double d2=Double.parseDouble(s1);
				double result=d1-d2;
				String str1=String.valueOf(result);
				jtf.setText(str1);
			}
			//乘法运算
					else if(jtf.getText().indexOf("*")!=-1){
				String str=jtf.getText();
				int i=str.indexOf("*");
				String s=str.substring(0, i);
				String s1=str.substring(i+1,str.length());
				Double d1=Double.parseDouble(s.trim());
				Double d2=Double.parseDouble(s1);
				double result=d1*d2;
				String str1=String.valueOf(result);
				jtf.setText(str1);
			}
					else if(jtf.getText().indexOf("/")!=-1){
						String str=jtf.getText();
						int i=str.indexOf("/");
						String s=str.substring(0, i);
						String s1=str.substring(i+1,str.length());
						Double d1=Double.parseDouble(s.trim());
						Double d2=Double.parseDouble(s1);
						double result=d1/d2;
						String str1=String.valueOf(result);
						jtf.setText(str1);
			}
			else{
				jtf.setText("请选择要输入的运算符");
			}
			}
			}
		
		}
		
	public static void main(String[] args){
		new Calculator();
	}
}
  • 15
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值