import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
@SuppressWarnings("serial")
public class cal extends JFrame implements ActionListener,KeyListener {
JButton bt1=new JButton("1");
JButton bt2=new JButton("2");
JButton bt3=new JButton("3");
JButton bt4=new JButton("4");
JButton bt5=new JButton("5");
JButton bt6=new JButton("6");
JButton bt7=new JButton("7");
JButton bt8=new JButton("8");
JButton bt9=new JButton("9");
JButton bt10=new JButton("0");
JButton point=new JButton(".");
JButton jia=new JButton("+");
JButton jian=new JButton("-");
JButton cheng=new JButton("×");
JButton chu=new JButton("÷");
JButton deng=new JButton("=");
JTextField tf=new JTextField();
JMenuBar mub;
JMenu mu1,mu2,mu3;
JMenuItem itm1,itm2,itm3,itm4,itm5,itm6,itm7;
String total="0";
String mer; //记忆
double a,b,c;
double one=1.0;
cal()
{
super("计算器");
setLocationRelativeTo(null);
setLayout(null);
setVisible(true);
setResizable(false);
setSize(215,297);
setBackground(Color.green);
mub=new JMenuBar();
setJMenuBar(mub);
add(bt10);
bt10.setBounds(5,200,46,35);
bt10.setFocusPainted(false);
add(point);
point.setBounds(56, 200, 46, 35);
point.setFocusPainted(false);
add(bt1);
bt1.setBounds(5, 160, 46, 35);
bt1.setFocusPainted(false);
add(bt2);
bt2.setBounds(56, 160, 46, 35);
bt2.setFocusPainted(false);
add(bt3);
bt3.setBounds(105, 160, 46, 35);
bt3.setFocusPainted(false);
add(bt4);
bt4.setBounds(5, 120, 46, 35);
bt4.setFocusPainted(false);
add(bt5);
bt5.setBounds(56, 120, 46, 35);
bt5.setFocusPainted(false);
add(bt6);
bt6.setBounds(105, 120, 46, 35);
bt6.setFocusPainted(false);
add(bt7);
bt7.setBounds(5, 80, 46,35);
bt7.setFocusPainted(false);
add(bt8);
bt8.setBounds(56,80, 46, 35);
bt8.setFocusPainted(false);
add(bt9);
bt9.setBounds(105, 80, 46, 35);
bt9.setFocusPainted(false);
add(jia);
jia.setBounds(105, 200, 46, 35);
jia.setFocusPainted(false);
jian.setFocusPainted(false);
cheng.setFocusPainted(false);
chu.setFocusPainted(false);
deng.setFocusPainted(false);
add(deng);
deng.setBounds(156, 200, 46, 35);
add(jian);
jian.setBounds(156, 80, 46, 35);
add(cheng);
cheng.setBounds(156, 120, 46, 35);
add(chu);
chu.setBounds(156, 160, 46, 35);
add(tf);
tf.setBounds(5, 0, 200, 70);
tf.setHorizontalAlignment(SwingConstants.RIGHT);
tf.setEditable(false);
tf.setText("0");
//菜单栏
mu1=new JMenu("文件");
mu3=new JMenu("编辑");
mu2=new JMenu("帮助");
itm3=new JMenuItem("清除(C)");
itm4=new JMenuItem("复制");
itm5=new JMenuItem("粘贴");
itm6=new JMenuItem("←(B)");
itm1=new JMenuItem("退出");
itm2=new JMenuItem("关于");
itm7=new JMenuItem("科学型");
mub.add(mu1);
mub.add(mu3);
mub.add(mu2);
mub.add(itm3);
mub.add(itm6);
mu3.add(itm4);
mu3.add(itm5);
//mu1.add(itm7);
mu1.add(itm1);
mu2.add(itm2);
tf.grabFocus();
//监听器
itm1.addActionListener(this);
itm2.addActionListener(this);
itm3.addActionListener(this);
itm4.addActionListener(this);
itm5.addActionListener(this);
itm6.addActionListener(this);
itm7.addActionListener(this);
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
bt4.addActionListener(this);
bt5.addActionListener(this);
bt6.addActionListener(this);
bt7.addActionListener(this);
bt8.addActionListener(this);
bt9.addActionListener(this);
bt10.addActionListener(this);
point.addActionListener(this);
jia.addActionListener(this);
jian.addActionListener(this);
cheng.addActionListener(this);
chu.addActionListener(this);
deng.addActionListener(this);
tf.addKeyListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}});
}
public static void main(String args[])
{
cal ca=new cal();
ca.show();
}
public void answer(String str)
{
String [] a=str.split("\\+|\\-|×|÷");
if(a.length==1)
{}
else
{
double first=Double.parseDouble(a[0]);
double second=Double.parseDouble(a[1]);
String [] b=str.split("0|1|2|3|4|5|6|7|8|9|\\.");
String c=b[a[0].length()]; //C是运算符
char[] d=c.toCharArray();
if(d[0]=='+')
{
double add=first+second;
if(add%one==0.0)
{
int result=(int)add;
str=String.valueOf(result);
tf.setText(str);
total=str;
}
else
{
str=String.valueOf(add);
tf.setText(str);
total=str;
}
}
else if(d[0]=='-')
{
double jianfa=first-second;
if(jianfa%one==0.0)
{
int result=(int)jianfa;
str=String.valueOf(result);
tf.setText(str);
total=str;
}
else
{
str=String.valueOf(jianfa);
tf.setText(str);
total=str;
}
}
else if(d[0]=='×')
{
double chengfa=first*second;
if(chengfa%one==0.0)
{
int result=(int)chengfa;
str=String.valueOf(result);
tf.setText(str);
total=str;
}
else
{
str=String.valueOf(chengfa);
tf.setText(str);
total=str;
}
}
else if(d[0]=='÷')
{
if(second==0)
{}
else
{
double chufa=first/second;
if(chufa%one==0.0)
{
int result=(int)chufa;
str=String.valueOf(result);
tf.setText(str);
total=str;
}
else
{
str=String.valueOf(chufa);
tf.setText(str);
total=str;
}
}
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf.grabFocus();
if (e.getSource()==itm1)
{
System.exit(0);
}
else if(e.getSource()==itm2)
{
about ab=new about();
ab.show();
this.hide();
//JOptionPane.showMessageDialog(null, "\t\tJava 计算器\n\n \t\t编写:赵远", "计算器", JOptionPane.ERROR_MESSAGE);
}
else if(e.getSource()==bt1)
{
String []b=total.split("\\+|\\-|×|÷");
if(b.length==1)
{
if(total=="0")
{
total="1";tf.setText(total);
}
else
{
total+="1";tf.setText(total);
}
}
else
{
char zero01=total.charAt(total.length()-1);
char zero02=total.charAt(total.length()-2);
if(zero01=='0'&&(zero02=='+'||zero02=='-'||zero02=='×'||zero02=='÷'))
{
String Backspace="";
for(int i=0;i<total.length()-1;i++)
{
char a=total.charAt(i);
Backspace+=String.valueOf(a);
}
total=Backspace;
total+="1";tf.setText(total);
}
else
{
total+="1";tf.setText(total);
}
}
}
else if(e.getSource()==bt2)
{
String []b=total.split("\\+|\\-|×|÷");
if(b.length==1)
{
if(total=="0")
{
total="2";tf.setText(total);
}
else
{
total+="2";tf.setText(total);
}
}
else
{
char zero01=total.charAt(total.length()-1);
char zero02=total.charAt(total.length()-2);
if(zero01=='0'&&(zero02=='+'||zero02=='-'||zero02=='×'||zero02=='÷'))
{
String Backspace="";
for(int i=0;i<total.length()-1;i++)
{
char a=total.charAt(i);
Backspace+=String.valueOf(a);
}
total=Backspace;
total+="2";tf.setText(total);
}
else
{
total+="2";tf.setText(total);
}
}
}
else
没有合适的资源?快使用搜索试试~ 我知道了~
简单的计算器程序,可以使用按钮+键盘两种方式输入
共16个文件
java:5个
class:4个
jpg:2个
5星 · 超过95%的资源 需积分: 0 11 下载量 44 浏览量
2011-12-09
15:30:06
上传
评论
收藏 47KB ZIP 举报
温馨提示
简单的计算器程序,可以使用按钮+键盘两种方式输入。并且解决了一些逻辑错误.使用Eclipse编写
资源推荐
资源详情
资源评论
收起资源包目录
计算器.zip (16个子文件)
计算器
bin
image
cal.jpg 17KB
计算器
image
cal.jpg 17KB
about.class 3KB
cal.class 11KB
about.java 2KB
cal$1.class 575B
about$1.class 587B
运行.bat 8B
cal.java 13KB
.settings
org.eclipse.jdt.core.prefs 629B
src
sci.java 4KB
about.java 2KB
cal.java 29KB
.project 385B
.classpath 301B
.myeclipse
profiler
cal.xml 791B
共 16 条
- 1
资源评论
- adaidehaimianbaobao2013-04-09多余我们这样新入论坛的初学者来说 不用积分下载才是最好的选择 代码为什么导入之后出现多个红色的XX?求解答
hythzx
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功