java实现简单计算器

 更新时间:2020年12月15日 08:42:14   作者:hixiaogui  
这篇文章主要为大家详细介绍了java实现简单计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现简单计算器的具体代码,供大家参考,具体内容如下

思路:定义一个主框架Frame,我们对原设计的草图进行划分,以方便后面的布局

下面我们来对主框架进行划分

如图,我们将主框架划分为四个JPanel,其中panel1,2,3使用GridLayout布局,GridLayout(1,2),

对于panel4我们使用流式布局,主框架设置为FlowLayout,

由此我们把主要的布局设计好了,接下来我们将个标签,文本框,按钮对应按钮按如上设计图依次放入各个panel中,忘了说了,我们还有对各个按钮注册事件监听器

接着我们就要在actionPerformed()函数中对事件源(e.getSource())方法中对相应的事件进行处理,我们以加法为列,我们的设计思路是:从数字一,数字二对应的文本框接收数据,由于使用JTextField的方法getText()返回的是一个String,所以我们要将其转化为十进制实数,所以我们使用了Double.parseDouble()函数将从文本框接收到的String转化为一个实数,数字一和数字二现在变成了实数,接着根据事件源不同就行对应不同的运算,接着结果继续转化为字符串(String.valueOf()函数),并且设置数字三对应的文本框的内容为相应的结果即:jt3.setText();结束。

图例 :乘法运算处理

特别的,在做除法运算时我们要对第二个操作数进行零操作检查,如果除数为零,我们将数字三对应的文本区设置为”除数不能为零”提示用户,除数不能为0

图例:除数不能为零

程序运行结果:输出1,2

加法

减法 

乘法 

除法

除数不能为0:

实现源码

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class MyCalc extends JFrame implements ActionListener {
 JFrame jf;
 
 JLabel jl1;
 JLabel jl2;
 JLabel jl3;
 
 JButton jb1;
 JButton jb2;
 JButton jb3;
 JButton jb4;
 
 JTextField jt1;
 JTextField jt2;
 JTextField jt3;
 JPanel jp1;
 JPanel jp2;
 JPanel jp3;
 JPanel jp4;
 Container con;
 
 public void go() {
 
  //窗口设置
  this.setLayout(new FlowLayout());
  this.setTitle("计算");
  this.setSize(150,200);
  
  con=this.getContentPane();
  //标签设置
  jl1=new JLabel("数字一");
  jl2=new JLabel("数字二");
  jl3=new JLabel("数字三");
  //按钮设置,及其注册事件监听
  jb1=new JButton("+");
  jb1.addActionListener(this);
  jb2=new JButton("-");
  jb2.addActionListener(this);
  jb3=new JButton("*");
  jb3.addActionListener(this);
  jb4=new JButton("/");
  jb4.addActionListener(this);
  //添加到面板
  jp1=new JPanel(new GridLayout(1,2));
  jp2=new JPanel(new GridLayout(1,2));
  jp3=new JPanel(new GridLayout(1,2));
  jp4=new JPanel(new GridLayout(1,2));
  //穿件文本框
  jt1=new JTextField();
  jt2=new JTextField();
  jt3=new JTextField(); 
  jp1.setVisible(true);
  
  jp1.add(jl1);
  jp1.add(jt1);
  con.add(jp1);
  
  jp2.add(jl2);
  jp2.add(jt2);
  con.add(jp2);
  
  jp3.add(jl3);
  jp3.add(jt3); 
  con.add(jp3);
  
  jp4.add(jb1);
  jp4.add(jb2);
  jp4.add(jb3);
  jp4.add(jb4);
  con.add(jp4);
  
  this.setVisible(true);
   
 }
 public static void main(String [] args) {
 MyCalc a= new MyCalc();
 
 a.go();
 
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getSource()==jb1) {
 jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())+Double.parseDouble(jt2.getText())));
 }else if(e.getSource()==jb2) {
 jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())-Double.parseDouble(jt2.getText())));
 }else if(e.getSource()==jb3) {
  jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())*Double.parseDouble(jt2.getText())));
 }else {
 if(Double.parseDouble(jt2.getText())==0.0) {
  jt3.setText("除数不能为零");
 }else
 jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())/Double.parseDouble(jt2.getText())));
 }
 
 }
}

关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java 语言实现清除带 html 标签的内容方法

    Java 语言实现清除带 html 标签的内容方法

    下面小编就为大家带来一篇Java 语言实现清除带 html 标签的内容方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • java实现电脑端扫描二维码

    java实现电脑端扫描二维码

    这篇文章主要为大家详细介绍了java实现电脑端扫描二维码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Java 如何获取某年的第一天和最后一天

    Java 如何获取某年的第一天和最后一天

    在统计的数据是时候,要统计某年的数据,开始时间是某年的第一天,结束时间是某年的最后一天,该如何获取某年的第一天和最后一天,今天通过本文介绍下Java获取某年的第一天和最后一天,需要的朋友可以参考下
    2023-07-07
  • Spring中的Bean对象初始化详解

    Spring中的Bean对象初始化详解

    这篇文章主要介绍了Spring中的Bean对象初始化详解,我们也可以根据Java语言的特性猜测到其很有可能是通过反射机制来完成Bean的初始化操作,接下来我们一步一步的剖析Spring对Bean的初始化操作,需要的朋友可以参考下
    2023-12-12
  • Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码

    Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码

    本篇文章主要介绍了Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • java notify和notifyAll的对比

    java notify和notifyAll的对比

    这篇文章主要介绍了 java notify和notifyAll的对比的相关资料,需要的朋友可以参考下
    2017-02-02
  • 如何使用GSON解析JSON数据

    如何使用GSON解析JSON数据

    这篇文章主要介绍了如何使用GSON解析JSON数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • SpringBoot中使用Session共享实现分布式部署的示例代码

    SpringBoot中使用Session共享实现分布式部署的示例代码

    这篇文章主要介绍了SpringBoot中使用Session共享实现分布式部署的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java设计模式之策略模式案例详解

    Java设计模式之策略模式案例详解

    策略模式(Strategy Pattern)定义了一组同类型的算法,在不同的类中封装起来,每种算法可以根据当前场景相互替换,从而使算法的变化独立于使用它们的客户端即算法的调用者
    2022-07-07
  • 时间中间键的整理

    时间中间键的整理

    这篇文章主要介绍了时间中间键的整理的相关资料,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,需要的朋友可以参考下
    2017-10-10

最新评论