java简易计算器

此小程序实现了计算器的基本功能:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class SimpleCalc extends JFrame{
    private static final long serialVersionUID = 1L;
    String[] labels = {"←","CE","±","√",
                "7","8","9","/",
                "4","5","6","*",
                "1","2","3","-",
                "0",".","=","+"};
    JButton[] btn;
    JTextField tf;
    Double n1 = 0.0, n2 = 0.0;
    String opt = "";
    SimpleCalc(String name)
    {
        super(name);
        this.setVisible(true);
        this.setBounds(400,300,300,400);
        this.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        });        

    }
    public void init()
    {
        tf = new JTextField();
        tf.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
        tf.setFont(new Font("宋体", 30,20));
        btn = new JButton[labels.length];
        for(int i=0;i<labels.length;i++)
        {
            btn[i] = new JButton(labels[i]);
            btn[i].setForeground(Color.blue);
            //System.out.print(btn[i].getActionCommand()+" ");
        }    

        JPanel p = new JPanel();
        p.setLayout(new GridLayout(5,5,3,3));
        for(int i=0;i<labels.length;i++)
            p.add(btn[i]);
        this.add(BorderLayout.NORTH,tf);
        this.add(BorderLayout.CENTER,p);

        this.pack();

        for(int i=0;i<labels.length;i++)
            btn[i].addActionListener(new Monitor());    

    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new SimpleCalc("java简易计算器").init();
    }

    class Monitor implements ActionListener
    {

        @Override
        public void actionPerformed(ActionEvent e) {
        try{

            String cmd = e.getActionCommand();
            if(cmd.equals("0")||cmd.equals("1")||cmd.equals("2")||cmd.equals("3")||cmd.equals("4")||
                    cmd.equals("5")||cmd.equals("6")||cmd.equals("7")||cmd.equals("8")||cmd.equals("9"))
            {
                tf.setText(tf.getText().trim()+e.getActionCommand());
                n1 = Double.parseDouble(tf.getText().trim());
            }
            if(cmd.equals("←"))
            {
                tf.setText(tf.getText().trim().substring(0,tf.getText().trim().length()-1));
            }
            else if(cmd.equals("CE"))
            {
                tf.setText("");
            }
            else if(cmd.equals("±"))
            {

                n1 = Double.parseDouble(tf.getText().trim());
                tf.setText(-n1+"");
            }
            else if(cmd.equals("√"))
            {
                n1 = Double.parseDouble(tf.getText().trim());
                tf.setText(Math.sqrt(n1)+"");
            }
            else if(cmd.equals("+"))
            {
                n2 = Double.parseDouble(tf.getText().trim());
                opt = "+";
                tf.setText("");
            }
            else if(cmd.equals("-"))
            {
                opt = "-";
                n2 = Double.parseDouble(tf.getText().trim());
                tf.setText("");
            }
            else if(cmd.equals("*"))
            {
                opt = "*";
                n2 = Double.parseDouble(tf.getText().trim());
                tf.setText("");
            }
            else if(cmd.equals("/"))
            {
                opt = "/";
                n2 = Double.parseDouble(tf.getText().trim());
                tf.setText("");
            }
            else if(cmd.equals("."))
            {
                if(tf.getText().trim().indexOf(".") != -1) //字符串中已经包含了小数点不做任何操作
                {
                }
                else //如果没有小数点
                {
                    if(tf.getText().trim().equals("0"))//如果开始为0
                    {
                        tf.setText(("0"+e.getActionCommand()).toString());
                    }
                    else if(tf.getText().trim().equals(""))//如果初时显示为空不做任何操作
                    {
                    }
                    else
                    {
                        tf.setText((tf.getText()+e.getActionCommand()).toString());
                    }
                }
            }
            else if(cmd.equals("="))
            {
                if(opt.equals("+"))
                    tf.setText((n2+n1)+"");
                else if(opt.equals("-"))
                    tf.setText((n2-n1)+"");
                else if(opt.equals("*"))
                    tf.setText((n2*n1)+"");
                else if(opt.equals("/"))
                {
                    if(n1 == 0)
                        tf.setText("除数不能为0");
                    else
                        tf.setText((n2/n1)+"");
                }
            }
        }catch(Exception ee){}
        }
    }
}

运行结果:

java简易计算器,布布扣,bubuko.com

时间: 07-07

java简易计算器的相关文章

Java简易计算器实现

闲来无事,做了简易的计算器,在控制台打印,顺便用用switch语句 1 /** 2 * @author baiyangshuxia 3 * 控制台简单的计算器实现 4 * @time 2017年7月11日 下午8:31:08 5 */ 6 package cal; 7 8 import java.util.Scanner; 9 10 public class caltest { 11 12 public static void main(String[] args) { 13 // TODO A

[java代码库]-简易计算器(第一种)

简易计算器(效果如图所示) 第一种方案:采用Javascript+html完成计算器,支持+-*/,结果显示不允许使用input输入域(可以考虑使用<span>) <html> <head> <title>简易计算器</title> <script language="javascript">//易错:不是"text/javascript" function doCal(){ //alert(d

[java代码库]-简易计算器(第二种)

第二种方案:在程序中不使用if/switch……case等语句,完成计算器功能. <html> <head> <title>简易计算器</title> <script language="javascript">//易错:不是"text/javascript" function doCal(){ var value1=parseInt(document.getElementById("value1

java swing开发最简易计算器源代码

原文:java swing开发最简易计算器源代码 源代码下载地址:http://www.zuidaima.com/share/1550463496948736.htm 用java swing写的简易计算器 /** *@author www.zuidaima.com */ package com.zuidaima.swing; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; i

JAVA开发简易计算器界面-SWT

大家好,我是成都[LD],博客四年前就申请了,一直没打理,最近正好有时间,遂萌生了写技术博客的念头.我不得不感慨现在新技术更新很快,一不小心,就感觉自身就Out了.记得一年前,当时我也是在51CTO上了解到NoSQL和Hadoop这样的信息,当时就简单觉得很新奇,没想到一年之后发展如此迅速~~当然我这样说,并不是叫大家去追寻新技术,最根本的还是基础打牢靠,休息的时候多去了解下最新的IT动态.学习下前辈高手的一些技能~~打铁还需自身硬嘛! 我写博客的目的:一来是为了促进自身的进步,二来是为了希望与

JAVA(利用jsp+javabean+servlet)实现简易计算器

代码解释基本都在代码中给出 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loo

Java(随笔)——利用HTML,CSS,JavaScript,JQuery编写的简易计算器

一.利用刚学过的前端知识做一个简易的计算器里边使用到了HTML,CSS,JavaScript以及JQuery的知识代码如下:(1)利用CSS设计了计算器外形样式:(2)利用JavaScript实现了建议计算器的功能:代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>简易计算器</title> <link rel="styl

函数调用_猜数字和简易计算器

package app1; import java.util.*; public class TestFunction{     public static void main(String[] args){         Scanner sc=new Scanner(System.in);         System.out.print("请选择一项应用:\n1.猜数字\n2.简易计算器");         int n=sc.nextInt();         switch(

如何用jsp实现一个简易计算器(三)

做这个jsp页面,主要是为了实现在同一个页面提交和接受数据的功能. 这个小程序存在很多不足,希望大家多多批评指正. <%@ page language="java" contentType="text/html;" pageEncoding="gbk"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w