查看: 2308|回复: 7

java基础计算器的一些代码

[复制链接]
  • TA的每日心情
    奋斗
    2016-11-5 20:47
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2016-10-10 22:12:18 | 显示全部楼层 |阅读模式
    /*
    * To change this license header, choose License Headers in Project Properties.
    * To change this template file, choose Tools | Templates
    * and open the template in the editor.
    */
    package 利用鼠标;

    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;

    /**
    *
    * @Author Administrator
    */
    public class Adder {
        JFrame frame;
        JLabel label_num1,label_num2,label_result;
        JTextField tf_num1,tf_num2,tf_result;
        JButton bt1,bt2,bt3,bt4;
        public Adder(){
            frame=new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       //关闭按钮
            frame.setSize(300,200);                                      //设置尺寸
            label_num1=new JLabel("num1");
            tf_num1=new JTextField(20);                //控制输入长度
            label_num2=new JLabel("num2");
            tf_num2=new JTextField(20);
            label_result=new JLabel("result");
            tf_result=new JTextField(20);
          
            bt1=new JButton("+");
            frame.setLayout(new FlowLayout());                    
            Mylistener mylistener=new Mylistener();
            bt1.addActionListener(mylistener);               //在按钮上加一个监视器
            
            bt2=new JButton("-");
            Mylistener2  mylistener2=new Mylistener2();
            bt2.addActionListener(mylistener2);
            
            bt3=new JButton("*");
            Mylistener3 mylistener3=new Mylistener3();
            bt3.addActionListener(mylistener3);
            
            bt4=new JButton("/");
            Mylistener4 mylistener4=new Mylistener4();
            bt4.addActionListener(mylistener4);
            
            frame.add(label_num1);                 //编写的时候必须按顺序与界面显示的顺序相对
            frame.add(tf_num1);
            frame.add(label_num2);
            frame.add(tf_num2);
            frame.add(label_result);
            frame.add(tf_result);
                            
            frame.add(bt1);
            frame.add(bt2);
            frame.add(bt3);
            frame.add(bt4);
            frame.setVisible(true);            //使界面可视
        }
        class Mylistener implements ActionListener{
            public void  actionPerformed(ActionEvent e){
                String num1=tf_num1.getText();
                String num2=tf_num2.getText();
                int n1=Integer.parseInt(num1);                           //字符串转换为整形
                int n2=Integer.parseInt(num2);
                int n=n1+n2;
                tf_result.setText(n+" ");                              //整形转换为字符串()加空格
            }
        }
        class Mylistener2 implements ActionListener{
            public void  actionPerformed(ActionEvent e){
                String num1=tf_num1.getText();
                String num2=tf_num2.getText();
                int n1=Integer.parseInt(num1);                           //字符串转换为整形
                int n2=Integer.parseInt(num2);
                int n=n1-n2;
                tf_result.setText(n+" ");                              //整形转换为字符串()加空格
            }
        }
        class Mylistener3 implements ActionListener{
            public void  actionPerformed(ActionEvent e){
                String num1=tf_num1.getText();
                String num2=tf_num2.getText();
                int n1=Integer.parseInt(num1);                           //字符串转换为整形
                int n2=Integer.parseInt(num2);
                int n=n1*n2;
                tf_result.setText(n+" ");      
                //整形转换为字符串()加空格
            }
        }
        class Mylistener4 implements ActionListener{
            public void  actionPerformed(ActionEvent e){
                String num1=tf_num1.getText();
                String num2=tf_num2.getText();
                int n1=Integer.parseInt(num1);                           //字符串转换为整形
                int n2=Integer.parseInt(num2);
                int n=n1/n2;
                tf_result.setText(n+" ");                              //整形转换为字符串()加空格
            }
        }
        public static void main(String args[]){
            Adder add=new Adder();
        }
    }

    点评

    在除法的设计中没考虑到分母为零的情况,在设计中,小数点无法进行运算。可以在addActionListener()里面可以直接new对象,更加简洁点。  发表于 2016-10-12 21:09
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-11-5 20:47
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2016-10-15 00:31:14 | 显示全部楼层
    谢谢,谢谢。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-11-5 20:47
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2016-10-15 00:42:01 | 显示全部楼层
    额,我改了double ,double  n2=Double.parseDouble(num2);
    结果有偏差啊,是因为强制转换时丢失了吗

    点评

    计算机没办法进行精确的计算,他只能算到大概的范围的。所以你要进行范围的判断。  发表于 2016-10-15 17:43
    你进行相除后的循环判断,用精度最小的值判断,精度值自己设置。简单说就是相除出来的值和设置的最小值进行判断,是否为满足结果  发表于 2016-10-15 17:41
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-17 09:25
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2016-10-19 08:58:29 | 显示全部楼层
    谢谢楼主分享
    回复 支持 反对

    使用道具 举报

    头像被屏蔽
  • TA的每日心情
    擦汗
    2017-8-8 10:53
  • 签到天数: 65 天

    [LV.6]常住居民II

    发表于 2016-10-21 15:35:08 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-24 12:20 , Processed in 0.022627 second(s), 14 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部