资源简介
自己学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
- 上一篇:Android工程模式简介.rar
- 下一篇:学生信息管理系统 JAVA课程设计
相关资源
- 学生信息管理系统 JAVA课程设计
- 棋盘覆盖---JAVA版
- 语音识别 sphinx4 JAVA 教程
- 用Java实现TCP通信
- java SQLServer做的员工管理系统
- JAVA坦克大战游戏源代码
- 用Java编写的扫雷游戏源代码
- 采用TCP SOCKET技术编写C/S模式的java聊天
- 《java程序设计》书附源代码
- Java程序设计考试试卷和答案(共4套)
- java做的人事档案管理系统
- java 局域网数据包嗅探
- Java 透明按钮 Java透明按钮
- Java写的递归下降分析程序
- 北大青鸟accp5.0java第四章理论加上机作
- java用spring struts hibernate做的学生成绩
- jsp mysql tomcat学生信息管理系统
- 科研管理系统 java swing mysql
- java真实项目煤矿管理系统
- 基于JAVA的物业收费管理系统源代码
- 东南大学 JAVA课程设计 学生信息管理
- Java大作业 学生成绩管理系统
- java图片轮播代码 可控制
- jsp成绩管理系统jsp servlet javabean
- java编写的迅雷下载器
- 贪吃蛇(java 源码 eclipse项目)
- java实现验证码代码
- 自动出题系统(java 课程设计)
- Java实现的公交查询系统代码
- 实例22 分割一个面板(java绝对新手实
评论
共有 条评论