本文实例为大家分享了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:
实现源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | 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()))); } } } |
关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/202138/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)