利用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 摩根富林明; , ,JLabel jl1; ,JLabel jl2; ,JLabel 卢卡斯; , ,JButton jb1; ,JButton jb2; ,JButton jb3; ,JButton jb4; , ,JTextField jt1; ,JTextField jt2; ,JTextField jt3; ,JPanel jp1; ,JPanel jp2; ,JPanel jp3; ,JPanel jp4; ,Container 诈骗; , ,public void 去(),{ ,//窗才能口设置 this.setLayout才能(new FlowLayout ()); this.setTitle才能(“计算“); this.setSize才能(150200); ,, 反对才能=this.getContentPane ();//标才能签设置 jl1才能=new JLabel(“数字一“); jl2才能=new JLabel(“数字二“); 卢卡斯才能=new JLabel(“数字三“);//才能按钮设置,及其注册事件监听 jb1才能=new JButton (“+”); jb1.addActionListener才能(这个); jb2才能=new JButton(“产生绯闻); jb2.addActionListener才能(这个); jb3才能=new JButton (“*”); jb3.addActionListener才能(这个); jb4才能=new JButton (“/?; jb4.addActionListener才能(这个);//才能添加到面板 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才能(真正的); ,, jp1.add才能(jl1); jp1.add才能(jt1); con.add才能(jp1); ,, jp2.add才能(jl2); jp2.add才能(jt2); con.add才能(jp2); ,, jp3.add才能(卢卡斯); jp3.add才能(jt3);, con.add才能(jp3); ,, jp4.add才能(jb1); jp4.add才能(jb2); jp4.add才能(jb3); jp4.add才能(jb4); con.add才能(jp4); ,, this.setVisible才能(真正的); ,, ,} ,public static  void 主要(String [], args), { ,MyCalc =, new MyCalc (); , ,a.go (); , ,} ,@Override ,public void  actionPerformed (ActionEvent e), { ,//TODO Auto-generated  method 存根 ,如果(e.getSource ()==jb1), { ,jt3.setText (String.valueOf (Double.parseDouble (jt1.getText ()) + Double.parseDouble (jt2.getText ()))); ,}else 如果(e.getSource ()==jb2), { null null null null null null null null null null null null利用java怎么实现一个计算器功能