查看: 2397|回复: 7

java基础计算器的一些代码

[复制链接]
发表于 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
回复

使用道具 举报

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

使用道具 举报

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

点评

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

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

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-5-1 16:00 , Processed in 0.103629 second(s), 18 queries , Gzip On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部