资源简介

自己学core java第15天时写得计算器,基本功能大体实现,里面用到了很多刚学过的基础知识,一共有84行,感觉比起网上一些计算器的代码还是比较精简的,拿出来同初学者一起学习探讨~~~使用backspace时出现小bug,请在控制backspace的语句中加入 s=rs; 即可解决,因为已经上传,只能改描述了

资源截图

代码片段和文件信息

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Computer implements ActionListener{
  String s = ““;//当输入数字时都存入这个变量
  String f = ““;//用来记录运算符号
  String rs = ““;//计算机屏幕会显示这个String中的内容
  JTextField jtf = new JTextField(20);//文本输入框
  String zz = “^[0-9.]$“;//数字和小数点的正则
  String zz1 = “^[\\+\\-\\*\\/]$“;//运算符号的正则
  Double d1;//用来存储运算符号左边的数值
  @Override//重写标示
  public void actionPerformed(ActionEvent e) {
    String com = e.getActionCommand();
    if(com.matches(zz)) {//用正则来判断
      s = s + com; //String的追加
      rs = s;
      jtf.setText(rs);//文本框显示
    }
      if(com.matches(zz1)) {
        d1 = Double.parseDouble(rs);//将运算符号前面的值存入d1
        s =““;//输入运算符后把s清空
        f = com;//存入该运算符号
    }
      if(com.equals(“=“)) {
        if(f.equals(“+“)) {
          rs =(d1+Double.parseDouble(s))+““;//这里实现就加法运算(将String转为Double进行运算后再转为String)   
        }
        if(f.equals(“-“)) {
          rs =(d1-Double.parseDouble(s))+““;
        }
        if(f.equals(“*“)) {
          rs =(d1*Double.parseDouble(s))+““;
        }
        if(f.equals(“/“)) {
          rs =(d1/Double.parseDouble(s))+““;
        }
        jtf.setText(rs);
        s = ““;//点击等于后把前面的s变量值清空
       }
       if(com.equals(“CE“)||com.equals(“C“)) {//这里将CE和C的功能设为一样的了
         s = ““;
         rs = ““;
         d1 = 0.0;
         jtf.setText(rs);
       }
       if(com.equals(“+/-“)) {
         rs = ((-1.0)*Double.parseDouble(jtf.getText()))+““;//正负转换的实现
         jtf.setText(rs);
       }
       if(com.equals(“Backspace“)) {
         if(rs.length()>0) {
             rs = rs.substring(0rs.length()-1);//用String的截取来实现退格
             jtf.setText(rs);
         }    
       }
  }
  public Computer() {
      Jframe jf = new Jframe(“Computer   by klyg_gm   o(∩_∩)o   “);
      JPanel jp  = new JPanel();//面板
      JButton[] jb = new JButton[20];//用JButton数组来存放按钮
      jp.setLayout(new GridLayout(54));
      String[] lab = {“Backspace““CE““C““+“
                   “7““8““9““-“
                   “4““5““6““*“
                   “1““2““3““/“
                   “0““+/-““.““=“};
      for(int i=0;i           jb[i] = new JButton(lab[i]);
         jp.add(jb[i]);//用for循环来将String数组的值传给JButton数组
          jb[i].addActionListener(this);//通过for循环实现所有Button的监听
      }  
      jf.add(jtfBorderLayout.NORTH);//文本框布局在北
      jf.add(jp);//面板布局默认在中
      jf.setResizable(false);//锁定窗体大小
      jf.setLocation(300200);//设置窗口弹出位置
      jf.pack();//自动调整大小
      jf.setVisible(true);//设为可见
      jf.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);//点X时关闭JVM的实现 
  }
  public static void main(String[] args) {
    new Computer();
  }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3126  2009-01-02 21:18  java计算器\Computer.java

     目录          0  2009-01-02 22:11  java计算器

----------- ---------  ---------- -----  ----

                 3126                    2


评论

共有 条评论