计算器源代码.docx

上传人:b****1 文档编号:2801957 上传时间:2023-05-04 格式:DOCX 页数:10 大小:16.42KB
下载 相关 举报
计算器源代码.docx_第1页
第1页 / 共10页
计算器源代码.docx_第2页
第2页 / 共10页
计算器源代码.docx_第3页
第3页 / 共10页
计算器源代码.docx_第4页
第4页 / 共10页
计算器源代码.docx_第5页
第5页 / 共10页
计算器源代码.docx_第6页
第6页 / 共10页
计算器源代码.docx_第7页
第7页 / 共10页
计算器源代码.docx_第8页
第8页 / 共10页
计算器源代码.docx_第9页
第9页 / 共10页
计算器源代码.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算器源代码.docx

《计算器源代码.docx》由会员分享,可在线阅读,更多相关《计算器源代码.docx(10页珍藏版)》请在冰点文库上搜索。

计算器源代码.docx

计算器源代码

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.io.*;

publicclassCalculateextendsJFrame{

privateStringfront="",behind="";//分别用于记录加减乘除运算符之前,之后输入的内容

privateStringop;//用于记录运算符

privateStringre;//用于存储运算结果的字符串格式

privatebooleanflag=false;//用于记录是否按下了运算符

privatebooleanflag1=false;//用于判断是否输入了点运算符

privatedoubleresult;//用于存储运算结果

privatebooleanflag2=false;//用于判断是否输入了数字

privatebooleanflag3=false;//用于判断是否按下了等号运算符

JPanelcontentPane;

JTextFieldtxtResult=newJTextField("0");

JButtonbtnNull=newJButton("sqrt");

JButtonbtnFour=newJButton("4");

JButtonbtnFive=newJButton("5");

JButtonbtnSix=newJButton("6");

JButtonbtnDecrease=newJButton("-");

JButtonbtnBegin=newJButton("C");

JButtonbtnOne=newJButton("1");

JButtonbtnTwo=newJButton("2");

JButtonbtnThree=newJButton("3");

JButtonbtnMultiply=newJButton("*");

JButtonbtnCancel=newJButton("←");

JButtonbtnZero=newJButton("0");

JButtonbtnMinus=newJButton("+/-");

JButtonbtnPoint=newJButton(".");

JButtonbtnDivide=newJButton("/");

JButtonbtnEqual=newJButton("=");

JButtonbtnIncrease=newJButton("+");

JButtonbtnSeven=newJButton("7");

JButtonbtnEight=newJButton("8");

JButtonbtnNine=newJButton("9");

publicCalculate(){

try{

setDefaultCloseOperation(EXIT_ON_CLOSE);

jbInit();

}catch(Exceptionexception){

exception.printStackTrace();

}

}

privatevoidjbInit()throwsException{

contentPane=(JPanel)getContentPane();

contentPane.setLayout(null);

this.setResizable(false);

setSize(newDimension(400,300));

setTitle("计算器");

txtResult.setEnabled(false);

txtResult.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

txtResult.setEditable(false);

txtResult.setHorizontalAlignment(SwingConstants.RIGHT);

txtResult.setBounds(newRectangle(33,19,310,34));

btnNull.setBounds(newRectangle(298,70,46,37));

btnNull.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12));

//btnNull.addActionListener(newFrameCalculate_btnNull_actionAdapter(this));

btnFour.setBounds(newRectangle(33,120,46,37));

btnFour.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnFive.setBounds(newRectangle(101,120,46,37));

btnFive.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnSix.setBounds(newRectangle(167,119,46,37));

btnSix.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnDecrease.setBounds(newRectangle(234,120,46,37));

btnDecrease.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnBegin.setBounds(newRectangle(298,121,46,37));

btnBegin.setFont(newjava.awt.Font("Dialog",Font.PLAIN,15));

btnBegin.addActionListener(newCalculate_btnBegin_actionAdapter(this));

btnOne.setBounds(newRectangle(33,172,46,37));

btnOne.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnTwo.setBounds(newRectangle(101,172,46,37));

btnTwo.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnThree.setBounds(newRectangle(167,172,46,37));

btnThree.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnMultiply.setBounds(newRectangle(234,172,46,37));

btnMultiply.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnCancel.setBounds(newRectangle(298,172,46,37));

btnCancel.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12));

btnCancel.addActionListener(newCalculate_btnCancel_actionAdapter(this));

btnZero.setBounds(newRectangle(33,222,46,37));

btnZero.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

//加载数字0-9的监听事件

btnZero.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnOne.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnTwo.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnThree.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnFour.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnFive.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnSix.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnSeven.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnEight.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnNine.addActionListener(newCalculate_btnZero_actionAdapter(this));

btnMinus.setBounds(newRectangle(101,222,46,37));

btnMinus.setFont(newjava.awt.Font("Dialog",Font.PLAIN,10));

btnMinus.addActionListener(newCalculate_btnMinus_actionAdapter(this));

btnPoint.setBounds(newRectangle(167,222,46,37));

btnPoint.setFont(newjava.awt.Font("Dialog",Font.PLAIN,30));

btnPoint.setHorizontalTextPosition(SwingConstants.CENTER);

btnPoint.addActionListener(newCalculate_btnPoint_actionAdapter(this));

btnDivide.setBounds(newRectangle(234,222,46,37));

btnDivide.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnEqual.setBounds(newRectangle(298,222,46,37));

btnEqual.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnEqual.addActionListener(newCalculate_btnEqual_actionAdapter(this));

btnIncrease.setBounds(newRectangle(234,70,46,37));

btnIncrease.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

//加载加减乘除运算符的监听事件

btnIncrease.addActionListener(new

Calculate_btnIncrease_actionAdapter(this));

btnDecrease.addActionListener(new

Calculate_btnIncrease_actionAdapter(this));

btnMultiply.addActionListener(new

Calculate_btnIncrease_actionAdapter(this));

btnDivide.addActionListener(new

Calculate_btnIncrease_actionAdapter(this));

btnSeven.setBounds(newRectangle(33,70,46,37));

btnSeven.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnEight.setBounds(newRectangle(101,70,46,37));

btnEight.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

btnNine.setBounds(newRectangle(167,70,46,37));

btnNine.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));

contentPane.add(btnFive);

contentPane.add(btnSix);

contentPane.add(btnDecrease);

contentPane.add(btnBegin);

contentPane.add(btnOne);

contentPane.add(btnTwo);

contentPane.add(btnThree);

contentPane.add(btnMultiply);

contentPane.add(btnCancel);

contentPane.add(btnMinus);

contentPane.add(btnPoint);

contentPane.add(btnDivide);

contentPane.add(btnEqual);

contentPane.add(btnEight);

contentPane.add(btnNine);

contentPane.add(btnFour);

contentPane.add(btnSeven);

contentPane.add(btnIncrease);

contentPane.add(btnNull);

contentPane.add(txtResult);

contentPane.add(btnZero);

}

publicvoidbtnZero_actionPerformed(ActionEvente){

if(flag){//如果刚刚按下了运算符

txtResult.setText("");

if(flag1){//判断之前是否输入了点运算符

txtResult.setText("0."+e.getActionCommand());

flag1=false;

}else{

txtResult.setText(e.getActionCommand());

}

flag2=true;

}else{

intnum=txtResult.getText().indexOf(".");

if(num<0&&!

txtResult.getText().equals("0")){

txtResult.setText(txtResult.getText()+e.getActionCommand());

}elseif(num<0&&txtResult.getText().equals("0")){

txtResult.setText(e.getActionCommand());

}elseif(num>=0&&txtResult.getText().equals("0")){

txtResult.setText("0."+e.getActionCommand());

}elseif(num>=0&&!

txtResult.getText().equals("0")){

txtResult.setText(txtResult.getText()+e.getActionCommand());

}

}

flag=false;

flag3=false;

}

publicvoidbtnIncrease_actionPerformed(ActionEvente){

if(flag3){

txtResult.setText(txtResult.getText());

op=e.getActionCommand();//得到刚刚按下的运算符

front=txtResult.getText();//记录加减乘除运算符之前输入的内容

}

elseif(flag2){

ActionEventee=newActionEvent("qq",1,"pp");

btnEqual_actionPerformed(ee);

op=e.getActionCommand();//得到刚刚按下的运算符

front=re;

flag2=false;

}else{

front=txtResult.getText();//记录加减乘除运算符之前输入的内容

op=e.getActionCommand();//得到刚刚按下的运算符

}

flag3=false;

flag=true;//记录已经按下了加减乘除运算符的其中一个

}

publicvoidbtnEqual_actionPerformed(ActionEvente){

if(!

flag3)//未曾按下等于运算符

behind=txtResult.getText();

else

front=re;

try{

doublea1=Double.parseDouble(front);

doubleb1=Double.parseDouble(behind);

if(op=="+"){

result=a1+b1;

}elseif(op=="-"){

result=a1-b1;

}elseif(op=="*"){

result=a1*b1;

}else{

result=a1/b1;

}

Doubler=newDouble(result);

re=r.toString(result);

txtResult.setText(re);

}catch(ArithmeticExceptionce){

txtResult.setText("除数不能为零");

}catch(Exceptionee){

}

if(!

flag3)

flag3=true;

}

publicvoidbtnPoint_actionPerformed(ActionEvente){

intnum=txtResult.getText().indexOf(".");

if(num<0&&!

flag)

txtResult.setText(txtResult.getText()+e.getActionCommand());

if(flag)

flag1=true;

}

publicvoidbtnBegin_actionPerformed(ActionEvente){//清零运算符事件处理

flag=false;

flag1=false;

flag2=false;

flag3=false;

front="";

behind="";

re="";

txtResult.setText("0");

}

publicvoidbtnMinus_actionPerformed(ActionEvente){//取反运算符事件处理

if(txtResult.getText().equals("0")){//如果文本框内容为0

txtResult.setText(txtResult.getText());

}elseif(txtResult.getText().indexOf("-")>=0){//若文本框中含有负号

Stringa=txtResult.getText().replaceAll("-","");

txtResult.setText(a);

}elseif(flag){

txtResult.setText("0");

}else{

txtResult.setText("-"+txtResult.getText());

}

}

publicvoidbtnCancel_actionPerformed(ActionEvente){//退格事件处理方法

Stringstr=txtResult.getText();

if(str.length()==1){//如文本框中只剩下最后一个字符,将文本框内容置为0

txtResult.setText("0");

}

if(str.length()>1){

str=str.substring(0,str.length()-1);

txtResult.setText(str);

}

}

publicstaticvoidmain(String[]args){

Calculatefc=newCalculate();

fc.setSize(400,310);

fc.setLocation(200,150);

fc.setVisible(true);

}

}

classCalculate_btnCancel_actionAdapterimplementsActionListener{

privateCalculateadaptee;

Calculate_btnCancel_actionAdapt

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2