java awt实现计算器功能

本文实例为大家分享了java awt实现计算器的具体代码,供大家参考,具体内容如下

上课老师演示了一遍他的写法,由于没给代码,因此按着他的思路撸了一遍,感觉还很简单。

代码以及解释如下:

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.JPanel;
import javax.swing.JTextField;

public class Caculate1 {
 static String s1="";
 static String s2="";
 static int f=9;
 static int num1=0,num2=0;
 public static void main(String[] args) {
 int x=0,y=0,z=0;
 JFrame jf=new JFrame( "我的计算器");
 jf.setBounds(0,0,300,400);
// jf.setBackground(bgColor);
 jf.setVisible(true);
 jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

 JTextField show=new JTextField("0");
 //此处为布局:也就是定义五个容器,(也可以理解为将定义的JFrame空间分为5个容器)
 JPanel jp1=new JPanel(new GridLayout(1,3));//存储:
 JPanel jp2=new JPanel(new GridLayout(1,3));
 JPanel jp3=new JPanel(new GridLayout(1,3));
 JPanel jp4=new JPanel(new GridLayout(1,3));
 JPanel jp5=new JPanel(new GridLayout(1,3));

 JButton bt_add=new JButton("+");
 JButton bt_sub=new JButton("-");
 JButton bt_mul=new JButton("*");
 JButton bt_div=new JButton("/");
 JButton bt_7=new JButton("7");
 JButton bt_8=new JButton("8");
 JButton bt_9=new JButton("9");
 JButton bt_4=new JButton("4");
 JButton bt_5=new JButton("5");
 JButton bt_6=new JButton("6");
 JButton bt_1=new JButton("1");
 JButton bt_2=new JButton("2");
 JButton bt_3=new JButton("3");
 JButton bt_0=new JButton("0");
 JButton bt_c=new JButton("C");
 JButton bt_equal=new JButton("=");

 jf.setLayout(new GridLayout(6,1));
 //容器1 :添加 '+','-','*','/'按钮
 jp1.add(bt_add);
 jp1.add(bt_sub);
 jp1.add(bt_mul);
 jp1.add(bt_div);
 //容器2:添加'7','8','9'按钮
 jp2.add(bt_7);
 jp2.add(bt_8);
 jp2.add(bt_9);
 //容器3:添加'4','5','6'按钮
 jp3.add(bt_4);
 jp3.add(bt_5);
 jp3.add(bt_6);
 //容器4:添加'1','2','3'按钮
 jp4.add(bt_1);
 jp4.add(bt_2);
 jp4.add(bt_3);
 //容器5:添加'0','C','='
 jp5.add(bt_0);
 jp5.add(bt_c);
 jp5.add(bt_equal);

 jf.add(show);
 jf.add(jp1);
 jf.add(jp2);
 jf.add(jp3);
 jf.add(jp4);
 jf.add(jp5);
//元素已经定义好了,思路也很简单:(1)JFrame定义一个大容器jf,jf= 1个显示框(show)+5个容器,分别定义显示框和容器,
 //(2)类似树形添加元素的数据结构,为jf添加元素

 //下面便是时间监听了(又称加载驱动)
 bt_9.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+9;
  show.setText(s1);
  }

 });

 bt_8.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+8;
  show.setText(s1);
  }

 });

 bt_7.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+7;
  show.setText(s1);
  }

 });

 bt_6.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+6;
  show.setText(s1);
  }

 });

 bt_5.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+5;
  show.setText(s1);
  }

 });

 bt_4.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+4;
  show.setText(s1);
  }

 });

 bt_3.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+3;
  show.setText(s1);
  }

 });

 bt_0.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+0;
  show.setText(s1);
  }

 });

 bt_2.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+2;
  show.setText(s1);
  }

 });

 bt_1.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+1;
  show.setText(s1);
  }

 });

 bt_0.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {

  s1=s1+0;
  show.setText(s1);
  }

 });

 bt_equal.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {
  num1=Integer.valueOf(s2);
  num2=Integer.valueOf(s1);
  int z=0;
  char fg=' ';

  switch(f){
  case 0:
   z=num1+num2;
   fg='+';
   break;
  case 1:
   z=num1-num2;
   fg='-';
   break;
  case 2:
   z=num1*num2;
   fg='*';
   break;
  case 3:
   fg='/';
   if(num2==0)
   num2=num2+1;
   z=num1/num2;
   break;
  default:
   break;
  }
  show.setText(s2+" "+fg+" "+s1+" = "+z);
  }

 });
 bt_add.addActionListener(new ActionListener(){

  @Override
  public void actionPerformed(ActionEvent e) {
  s2=s1;
  s1="";
  f=0;
  show.setText(s2+"+");
  }

 });
 bt_sub.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  s2 = s1;
  s1 = "";
  f = 1;
  show.setText(s2 + " - ");
  }
 });
 bt_mul.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  s2 = s1;
  s1 = "";
  f = 2;
  show.setText(s2 + " * ");
  }
 });
 bt_div.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  s2 = s1;
  s1 = "";
  f = 3;
  show.setText(s2 + " / ");
  }
 });
 bt_c.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  s2 = "";
  s1 = "";
  num1 = 0;
  num2 = 0;
  f = 9;
  show.setText("0");
  }
 });
 }

}

关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java模仿windows计算器示例

    这个计算器的界面模仿Windows自带的简易计算器,包括交互界面和和对各种输入的响应.目前尚未实现菜单栏和记忆类按钮的功能 复制代码 代码如下: import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import

  • java图形界面AWT编写计算器

    一.前言 1)这个计算器是基于java语言下图形界面AWT编写的.其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用.通过联系熟悉掌握AWT基础为深入学习打下基础.这个计算器功能也十分简单,空有其表.不过有兴趣的话可以继续添加功能完善操作等. 2)使用平台:主要使用Myeclipse2014 3)主要知识点:java 基础; awt+swing 二.功能实现及代码展示 1)主要是layout布局的练习,对画板文本框的使用,

  • java实现简易计算器功能

    本文为大家分享了java实现简易计算器功能,具体内容如下 题目: 编写一个模拟计算器的程序.在面板中添加一个文本框(显示按键及运算结果). 10个数字按钮(0~9).4个运算按钮(加.减.乘.除).一个等号按钮.一个清除按钮, 要求将按键和结果显示在文本框中. 代码过程展示: import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.Action

  • Java swing实现的计算器功能完整实例

    本文实例讲述了Java swing实现的计算器功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Vector; public class Calculator { String str1 = "0"; // 运算数1 初值一定为0 为了程序的安全 String str2 = "0"

  • Java简易计算器程序设计

    编写一个模拟计算器的应用程序,使用面板和网格布局, 添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, 一个等号按钮,一个清除按钮,一个求平方根按钮,一个退格按钮, 要求将计算公式和结果显示在文本框中,实现效果如下图所示. Java简易计算器代码: import javax.swing.*; import javax.swing.JTextField; import java.awt.*; import java.awt.event.*; import java.lang.*; imp

  • 使用jsp调用javabean实现超简单网页计算器示例

    以下是代码: Calculator.java 复制代码 代码如下: package com.amos.model; import java.math.BigDecimal; /** * @ClassName: Calculator * @Description: 计算器 * @author: amosli * @email:amosli@infomorrow.com * @date Mar 20, 2014 1:04:59 AM  */ public class Calculator {    

  • java实现简单的计算器类实例

    本文实例讲述了java实现简单的计算器类.分享给大家供大家参考.具体如下: package chap; 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 java.text

  • java按钮控件数组实现计算器界面示例分享

    思路如下: 创建一个类,通过extends使其继承窗体类JFrame:创建一个JFrame对象,使用JFrame类的setVisible()方法设置窗体可见:在构造函数中,使用super()方法继承父类的构造方法:使用setTitle()方法设置窗体的标题:使用setBounds()方法设置窗体的显示位置及大小:使用setDefaultCloseOperation()方法设置窗体关闭按钮的动作为退出:使用GridLayout创建网格布局管理器对象:使用GridLayout类的setHgap()方

  • Java实现计算器的代码

    用Java 实现的计算器,原理看代码注释,具体内容如下 public class MyCalculator { public static void main(String[] args) { String obj = "6+(8/2)+6/3+1*8 + 30"; ArrayList<String> arrayList = strFormat(obj); System.out.println(obj + "=" + calculator(arrayLi

  • java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { CalculatorFrame frame = new Calculato

随机推荐