`
topwise
  • 浏览: 737 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

简单功能的计算器

    博客分类:
  • java
阅读更多

作为初学者总想写点可行的东西, 但是总也是四处碰壁!

要知道,只有在逆境中才能磨练自己!

自信点,勇于去面对错误,找出原因,就是进步!

 

 

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JSanQi implements ActionListener {
 JFrame f1;

 JPanel p1, p2, p3;

 JTextField t1;

 JButton bt[];

 JButton bdoc, bexit, back, bzero, badd, bsub, bmul, bdiv, bcanl, bequl;

 boolean Key;

 JMenuBar menu;

 JMenu m1;

 JMenuItem mt1, mt2;

 Double fnum;

 int key, doc;

 @SuppressWarnings("deprecation")
 public JSanQi() {
  fnum = 0.0;
  Key = true;
  doc = 0;
  f1 = new JFrame("My Calculator!");
  f1.setLayout(new BorderLayout());
  p1 = new JPanel();
  p2 = new JPanel();
  p3 = new JPanel();
  t1 = new JTextField();
  menu = new JMenuBar();
  m1 = new JMenu("file");
  mt1 = new JMenuItem("nihao!");
  mt2 = new JMenuItem("exit!");
  t1.setEditable(false);
  t1.setBackground(new Color(205,201,120));
  f1.add(p2, BorderLayout.NORTH);
  f1.add(p1);
  p2.setLayout(new FlowLayout());
  p2.add(menu, FlowLayout.LEFT);
  menu.add(m1);
  m1.add(mt1);
  m1.add(mt2);
  mt1.addActionListener(this);
  mt2.addActionListener(this);
  p1.setLayout(new BorderLayout());
  p1.add(t1, BorderLayout.NORTH);
  p1.add(p3);
  bt = new JButton[10];
  for (int i = 0; i < 10; i++) {
   bt[i] = new JButton(Integer.toString(i));
  }
  bdoc = new JButton(".");
  bexit = new JButton("Exit!");
  back = new JButton("Back!");
  back.setForeground(new Color(255, 0, 0));
  bexit.setForeground(new Color(0, 0, 255));
  bexit.setBackground(new Color(120,120,225));
  bzero = new JButton("00");
  badd = new JButton("+");
  bsub = new JButton("-");
  bmul = new JButton("*");
  bdiv = new JButton("/");
  bcanl = new JButton("EC");
  bequl = new JButton("=");
  //bequl.setLabel("123");
  //bequl.addNotify();
  p3.setLayout(new GridLayout(4, 5));

  p3.add(bt[1]);
  p3.add(bt[2]);
  p3.add(bt[3]);
  p3.add(badd);
  p3.add(bsub);
  p3.add(bt[4]);

  p3.add(bt[5]);
  p3.add(bt[6]);
  p3.add(bmul);
  p3.add(bdiv);
  p3.add(bt[7]);
  p3.add(bt[8]);
  p3.add(bt[9]);
  p3.add(back);
  p3.add(bequl);
  p3.add(bt[0]);
  p3.add(bzero);
  p3.add(bdoc);
  p3.add(bcanl);
  p3.add(bexit);

  bt[0].addActionListener(this);
  bt[1].addActionListener(this);
  bt[2].addActionListener(this);
  bt[3].addActionListener(this);
  bt[4].addActionListener(this);
  bt[5].addActionListener(this);
  bt[6].addActionListener(this);
  bt[7].addActionListener(this);
  bt[8].addActionListener(this);
  bt[9].addActionListener(this);

  bdoc.addActionListener(this);
  bexit.addActionListener(this);
  back.addActionListener(this);
  bzero.addActionListener(this);
  badd.addActionListener(this);
  bsub.addActionListener(this);
  bmul.addActionListener(this);
  bdiv.addActionListener(this);
  bcanl.addActionListener(this);
  bequl.addActionListener(this);

  f1.setSize(290, 220);
  f1.pack();
  f1.setVisible(true);
 }

 public static void main(String[] args) {
  new JSanQi();

 }

 public void actionPerformed(ActionEvent event) {
  Object temp = event.getSource();

  try {
   for (int i = 0; i < 10; i++) {
    if (temp == bt[i] && Key == true) {
     t1.setText(t1.getText() + Integer.toString(i));
    }
   }
   if (temp == badd || temp == bsub || temp == bmul || temp == bdiv) {
    if (temp == badd && Key == true) {
     key = 1;
     fnum = Double.parseDouble(t1.getText());
     // t1.setText(t1.getText()+fnum);
    }
    if (temp == bsub && Key == true) {
     key = 2;
     fnum = Double.parseDouble(t1.getText());
    }
    if (temp == bmul && Key == true) {
     key = 3;
     fnum = Double.parseDouble(t1.getText());
    }
    if (temp == bdiv && Key == true) {
     if (Double.parseDouble(t1.getText()) == 0) {
      t1.setText("Wrong action!");
     } else {
      key = 4;
      fnum = Double.parseDouble(t1.getText());
     }
    }
    t1.setText("");
    doc=0;
   }
   if (temp == bequl && Key == true) {
    switch (key) {
    case 1:
     fnum += Double.parseDouble(t1.getText());
     t1.setText(Double.toString(fnum));
     break;
    case 2:
     fnum -= Double.parseDouble(t1.getText());
     t1.setText(Double.toString(fnum));
     break;
    case 3:
     fnum *= Double.parseDouble(t1.getText());
     t1.setText(Double.toString(fnum));
     break;
    case 4:
     fnum /= Double.parseDouble(t1.getText());
     t1.setText(Double.toString(fnum));
     break;
    default:
     break;
    }
    doc=0;
   }
   if (temp == bcanl) {
    t1.setText("");
    Key = true;
    doc=0;

   }
   if (temp == bexit || temp == mt2) {
    System.exit(0);
   }
   if (temp == bzero && Key==true) {
    t1.setText(t1.getText() + "00");
    //doc=0;
   }
   if (temp == mt1) {
    JOptionPane.showMessageDialog(p1, "How Are You!\n"
      + "Architect Is Topwise ^_^");

   }
   
   if (temp == bdoc && Key==true) {
    if (doc == 0) {
     t1.setText(t1.getText() + ".");
     }
    
    if(doc==1) {
     t1.setText("Wrong Action");
     Key = false;
     doc = 0;
    }
    doc = 1;
   }
   if (temp==back && Key==true){
    
   }

  } catch (Exception e) {
   t1.setText("Wrong Action!");
   Key = false;
  }
 }

}

还有点未完善,可以试着自己做好!

分享到:
评论

相关推荐

    C# 多功能计算器 多功能计算器

    【标题】:“C# 多功能计算器”是一个基于C#编程语言实现的计算器软件,它扩展了基础计算功能,提供了多种运算模式,如标准计算、科学计算等,以满足用户在不同场景下的需求。 【描述】:这个项目的核心是利用C#的...

    基于51单片机的多功能计算器设计_基于51单片机的多功能计算器设计_

    《基于51单片机的多功能计算器设计》 在电子技术领域,51单片机是一种广泛应用的微控制器,以其简单易用、功能强大而深受工程师喜爱。本设计旨在利用51单片机构建一个具备多种计算功能的计算器,不仅能够进行基本的...

    labview简单功能计算器

    使用labview搭建的一个计算器例子,对于初学者来说有一定的参考价值。

    用c++实现计算器的简单功能计算器.cpp

    用c++实现计算器的简单功能,运用switch和if.....elseif....else实现加减乘除和开方

    用MFC做的简单功能计算器

    在这个场景中,我们讨论的是一个使用MFC实现的简单计算器程序。 **MFC计算器的设计与实现:** 1. **框架结构**:MFC计算器通常基于MFC的框架结构,包括视图(View)、文档(Document)、框架窗口(Frame Window)...

    多功能计算器 万能计算器

    不仅如此,"多功能计算器 万能计算器"往往还具备自定义功能,用户可以根据自己的需求设置常量、单位转换,甚至编写简单的计算程序,让计算过程更加个性化和高效。对于那些需要处理特定计算问题的用户来说,这是一个...

    51单片机实现简易计算器功能

    本篇文章将深入探讨如何使用51单片机实现一个简易计算器的功能,这通常涉及硬件接口、软件编程以及人机交互设计。 首先,我们要理解51单片机的基本结构。51系列单片机由Intel公司开发,具有8位CPU,内部集成RAM、...

    基于单片机的多功能计算器设计

    《基于51单片机的多功能计算器设计》 在电子技术领域,51单片机是一种广泛应用的微控制器,以其简单易用、功能强大而深受工程师喜爱。本项目旨在利用51单片机设计一款具备多种计算功能的计算器,不仅能满足基本的加...

    基于jQuery/JS的简易网页计算器

    【标题】"基于jQuery/JS的简易网页计算器"揭示了这个项目的核心——使用JavaScript和jQuery技术来实现一个基本的在线计算功能。JavaScript是一种在客户端浏览器上运行的脚本语言,常用于网页交互和动态效果的实现,...

    66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)

    66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51...

    多功能简易计算器 程序仿真.zip

    《多功能简易计算器程序仿真》 在信息技术领域,计算器软件是一种常见的工具,用于执行基本到复杂的数学运算。本项目“多功能简易计算器程序仿真”旨在提供一个用户友好的界面,实现多种计算功能,包括基础算术运算...

    c程序设计多功能计算器

    该C程序代码展示了如何使用C语言实现一个多功能计算器,涵盖了基本的数学运算、复数运算以及简单的控制台界面美化等功能。此外,通过宏定义和类型定义增强了程序的可读性和可维护性。对于初学者来说,这是一个很好的...

    一个简易的计算器,带注释

    在本项目中,我们讨论的是一个使用Java编程语言编写的简易计算器程序。这个计算器程序具有基本的四则运算功能,并且源代码中包含了详细的注释,便于初学者理解和学习。 首先,我们需要理解Java编程基础。Java是一种...

    基于LabVIEW编写的简易计算器

    **基于LabVIEW编写的简易计算器** LabVIEW,全称Laboratory Virtual Instrument Engineering Workbench,是一款由美国国家仪器(NI)公司开发的图形化编程环境,主要用于创建虚拟仪器、数据采集和控制系统的应用...

    简易多功能计算器,完整版

    【简易多功能计算器,完整版】是一款专为用户提供便捷计算服务的应用程序,它的设计目标是解决传统计算器在进行连续加减乘除操作时可能存在的输入不便和错误率高的问题。这款计算器是作者亲自编写的,作者认为这可能...

    mfc 简易计算器(有除零报错功能)

    【标题】:“MFC简易计算器(有除零报错功能)” 这个项目是基于MFC(Microsoft Foundation Classes)框架开发的一个简易计算器应用。MFC是微软提供的C++库,用于构建Windows应用程序,它封装了Windows API,使得...

    源码07C# 多功能计算器 源码07 多功能计算器

    【标签】"C# 多功能计算器"表明这个项目的核心技术和应用领域,C#语言的特性使得它可以轻松地创建图形用户界面(GUI),并结合.NET框架提供丰富的类库支持,使得开发这样一个计算器变得更加简单。多功能计算器则意味...

    java实现简易计算器

    根据提供的文件名"计算器",我们可能假设这是一个包含Java源代码的文件,可能是实现了上述功能的一个类或一个简单的程序。如果是一个类,它可能命名为`Calculator.java`,并包含一个`Calculator`类,其中定义了计算...

    简单计算器简单计算器简单计算器简单计算器简单计算器简单计算器

    【描述】: "简单计算器简单计算器简单计算器简单计算器简单计算器简单计算器"描述中虽然没有提供具体细节,但我们可以理解为这是关于构建一个用户界面简洁、功能直观的计算器应用。通常,这样的计算器会包含数字键、...

Global site tag (gtag.js) - Google Analytics