java实现简单四则运算_JAVA实现四则运算的简单计算器

这篇博客展示了如何使用JAVA的Swing库创建一个简单的四则运算计算器。通过创建JFrame窗口,添加JTextField和JButton组件,并设置相应事件监听,实现了加、减、乘、除以及清除和等于操作的功能。计算逻辑通过一个单独的calculation类完成,能够处理基本的算术运算并捕获除零错误。
摘要由CSDN通过智能技术生成

开发环境eclipse java neon.

今天用JAVA的swing界面程序设计制作了一个四则运算的简易计算器.代码以及截图如下:

computer.java:

/

//

//开发者:

//

//简介:实现四则运算的简易计算器

//

/*

*用swing图形用户界面实现计算器的设计

*同时练习在线文档注释的使用方法

*

* @author linruier

* @version 1.0

* @since J2SE1.8

*/

import javax.swing.JButton;

import java.awt.Graphics;

import java.awt.FlowLayout;

import javax.swing.JFrame;

import javax.swing.JTextField;

import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import javax.swing.JPanel;

import java.awt.Font;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class computer extends JFrame

{

computer()

{

super("简易计算器");

Font f=new Font("黑体",30,30);

JTextField jt1=new JTextField(null);

JTextField jt2=new JTextField(null);

jt1.setFont(f);

jt2.setFont(f);

jt1.setHorizontalAlignment(JTextField.RIGHT);

jt2.setHorizontalAlignment(JTextField.RIGHT);

Container c=getContentPane();

c.setLayout(new FlowLayout(FlowLayout.LEFT,5,5));

c.add(jt1);

c.add(jt2);

jt1.setPreferredSize(new Dimension(370,70));

jt2.setPreferredSize(new Dimension(370,75));

jt1.setEditable(false);jt2.setEditable(false);

JButton jb[]=new JButton[16];

for(int j=0;j<16;j++)

{

jb[j]=new JButton();

jb[j].setBackground(Color.WHITE);

jb[j].setFocusable(false);

jb[j].setPreferredSize(new Dimension(90,90));

jb[j].setFont(f);

c.add(jb[j]);

}

this.setResizable(false);

//对各个按钮的名称赋值

jb[0].setText("+");jb[1].setText("-");jb[2].setText("*");jb[3].setText("/");

jb[4].setText("1");jb[5].setText("2");jb[6].setText("3");jb[7].setText("C");jb[7].setBackground(Color.ORANGE);

jb[8].setText("4");jb[9].setText("5");jb[10].setText("6");jb[11].setText("0");

jb[12].setText("7");jb[13].setText("8");jb[14].setText("9");jb[15].setText("=");

JButton Button_num[]={jb[4],jb[5],jb[6],jb[8],jb[9],jb[10],jb[11],jb[12],jb[13],jb[14]};

for(int i=0;i

{

Button_num[i].addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

JButton action_Button=(JButton)e.getSource();

jt2.setText(jt2.getText()+action_Button.getText());

}

}

);

}

for(int j=0;j<4;j++)

{

jb[j].addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String s=jt2.getText();

char ch=s.charAt(s.length()-1);

if(ch=='+'||ch=='-'||ch=='*'||ch=='/')((JButton)e.getSource()).setEnabled(false);

else

{

jt1.setText(jt2.getText());

jt2.setText(((JButton)e.getSource()).getText());

}

}

}

);

}

jb[7].addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

jt1.setText(null);jt2.setText(null);

}

}

);

jb[15].addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

try

{

String Calculate_String=jt1.getText()+jt2.getText();

int result=calculation.result(Calculate_String);

jt1.setText(null);

jt2.setText(Integer.toString(result));

}

catch(ArithmeticException ex)

{

jt1.setText(null);jt2.setText("ERROR");

}

}

}

);

}

public static void main(String args[])

{

computer app=new computer();

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

app.setSize(400,580);

app.setVisible(true);

}

}

//再定义一个计算类calculation.java:

public class calculation {

calculation(){};

boolean is_operator(char ch)

{

if(ch=='+'||ch=='-'||ch=='*'||ch=='/')return true;

else return false;

}

static int result(String s)

{

String ch[]={"+","-","*","/"};

int i=0;int index;

while(s.indexOf(ch[i])==-1&&i<4){i++;}

if(i==4)return -1;

else index=s.indexOf(ch[i]);

String s1=s.substring(0, index);

String s2=s.substring(index+1, s.length());

if(i==0)return Integer.parseInt(s1)+Integer.parseInt(s2);

if(i==1)return Integer.parseInt(s1)-Integer.parseInt(s2);

if(i==2)return Integer.parseInt(s1)*Integer.parseInt(s2);

if(i==3&&Integer.parseInt(s2)!=0)return Integer.parseInt(s1)/Integer.parseInt(s2);

else if(i==3&&Integer.parseInt(s2)==0){throw new ArithmeticException();}

return -1;

}

}

最后运行就可以实现一个十分简洁的小计算器:

cf71c6ea681d5e1e011c74b9e812e415.png

032a6f9ad3199249b82c0069627ce4d5.png

d449c817124caf7bd0c90ceae2a337ac.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值