java计算器小程序.docx
《java计算器小程序.docx》由会员分享,可在线阅读,更多相关《java计算器小程序.docx(12页珍藏版)》请在冰豆网上搜索。
java计算器小程序
Myeclipse环境下Java语言编写的计算器小程序源代码
//程序的主要部分
packagepkg_1;
importjava.awt.*;
importjava.awt.Button;
importjava.awt.GridLayout;
importjava.awt.Panel;
importjava.awt.TextField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowEvent;
importjava.awt.event.WindowListener;
publicclasscacalatorextendsFrameimplementsActionListener,WindowListener{
Stringbutton_name[]={"1","2","3","+","4","5","6","-","7","8","9","*","0","=","清除","/"};//按钮上的字符串
Buttonbut[];//按钮数组
TextFieldtext_1;//一个文本框用于记录数入的字符串
Panelpan_1,pan_2;//两个面板
doublen_1=0,n_2=0;//记录输入的数值
charc='1';//记录输入的符号
staticintn=0;//记录数入的符号的数目
staticStrings_1="",s_3="";
staticStrings_2="";//记录输入符号前输入的字符串
cacalator(){
super("计算器");//调用父类的构造函数
setSize(300,300);//设置大小
setLayout(newBorderLayout(10,10));//布局
but=newButton[button_name.length];//实例化创建按钮数组
text_1=newTextField("0");//实例化并出示话为0
pan_1=newPanel();//实例化
pan_2=newPanel();//实例化
pan_1.setLayout(newGridLayout(1,1));//设置面板1为2行1列
pan_1.add(text_1);//将文本框添加到面板1中
add(pan_1,BorderLayout.NORTH);//将面板1放到窗体的上部
pan_2.setLayout(newGridLayout(4,4));//设置面板2为4行4列
for(inti=0;i{but[i]=newButton(button_name[i]);//写入按钮上的字pan_2.add(but[i]);//按钮添加到面板2上but[i].addActionListener(this);//加上监听}add(pan_2,BorderLayout.CENTER);//将面板2放到窗体的中间addWindowListener(this);//窗体加上监听setVisible(true);//设置可见}publicvoidactionPerformed(ActionEventarg0){Strings_0,s_1;//定义字符创用以存储读出的东西s_0=arg0.getActionCommand();//读到单击按钮时按钮上的字符串相当于记录命令s_1=text_1.getText();//读出文本框1的内容if(s_0.equals("1")||s_0.equals("2")||s_0.equals("3")||s_0.equals("4")||s_0.equals("5")||s_0.equals("6")||s_0.equals("7")||s_0.equals("8")||s_0.equals("9")||s_0.equals("0")){if(n%2==0){s_2=s_2+s_0;text_1.setText(s_2);//如果这个时候没有输入运算符则直接将单击的东西连接在s_2上并显示在s_2上n_1=(Float.valueOf(s_2)).floatValue();//在没有输入运算符的时候将数值记录在n_1上}if(n%2==1){s_3=s_3+s_0;text_1.setText(s_3);//如果这个时候输入了运算符则直接将单击的东西连接在s_2上并显示在s_2上n_2=(Float.valueOf(s_3)).floatValue();//在输入了运算符的时候将数值记录在n_2上}}if(s_0.equals("+")){n=n+1;c='+';//text_1.setText("");}if(s_0.equals("-")){n=n+1;c='-';//text_1.setText("");}if(s_0.equals("*")){n=n+1;c='*';//text_1.setText("");}if(s_0.equals("/")){n=n+1;c='/';//text_1.setText("");}if(s_0.equals("=")){n=n+1;s_3="";if(c=='+'){n_1=n_1+n_2;s_1=Double.toString(n_1);}if(c=='-'){n_1=n_1-n_2;s_1=Double.toString(n_1);}if(c=='*'){n_1=n_1*n_2;s_1=Double.toString(n_1);}if(c=='/'){n_1=n_1/n_2;s_1=Double.toString(n_1);}text_1.setText(s_1);}if(s_0.equals("清除")){c='1';n_1=0;n_2=0;s_1="";s_2="";text_1.setText("");}}publicvoidwindowActivated(WindowEventarg0){//TODOAuto-generatedmethodstub}publicvoidwindowClosed(WindowEventarg0){}publicvoidwindowClosing(WindowEventarg0){Windoww=(Window)arg0.getSource();setVisible(false);w.dispose();}publicvoidwindowDeactivated(WindowEventarg0){//TODOAuto-generatedmethodstub}publicvoidwindowDeiconified(WindowEventarg0){//TODOAuto-generatedmethodstub}publicvoidwindowIconified(WindowEventarg0){//TODOAuto-generatedmethodstub}publicvoidwindowOpened(WindowEventarg0){//TODOAuto-generatedmethodstub}}//这是主函数部分packagepkg_1;importjavax.swing.JOptionPane;publicclasscacalator_1{publicstaticvoidmain(String[]args){cacalatorcac_1=newcacalator();}}importjava.awt.*;importjavax.swing.*;importjavax.swing.event.*;importjava.awt.event.*;classCalculatorextendsJFrameimplementsActionListener{JPanelpanel,panel1,panel2,panel3;JLabellabelSpace;JButtonbuttonCe;JButtonbutton[];JButtonbuttonDot,buttonAdd,buttonSub,buttonMul,buttonDiv;JButtonbuttonEqual;JTextFieldtextAnswer;booleanclickable;doublevard,answerd;shortkey=0;inttimes=0;publicCalculator(){super("计算器");clickable=true;answerd=0;textAnswer=newJTextField(20);textAnswer.setText("");textAnswer.setEditable(false);panel=newJPanel();Containerw1Container=this.getContentPane();panel1=newJPanel();panel2=newJPanel();panel.setLayout(newBorderLayout());panel.add(textAnswer,BorderLayout.CENTER);panel.add(panel1,BorderLayout.SOUTH);panel1.setLayout(newBorderLayout());labelSpace=newJLabel("");buttonCe=newJButton("Ce");buttonCe.addActionListener(this);panel1.add(panel2,BorderLayout.NORTH);panel2.setLayout(newFlowLayout(FlowLayout.RIGHT));panel2.add(buttonCe);panel3=newJPanel();panel1.add(panel3,BorderLayout.CENTER);button=newJButton[10];for(inti=0;ibutton[i]=newJButton(Integer.toString(i));}buttonDot=newJButton(".");buttonAdd=newJButton("+");buttonSub=newJButton("-");buttonMul=newJButton("*");buttonDiv=newJButton("/");buttonEqual=newJButton("=");panel3.setLayout(newGridLayout(4,4));panel3.add(button[7]);button[7].addActionListener(this);panel3.add(button[8]);button[8].addActionListener(this);panel3.add(button[9]);button[9].addActionListener(this);panel3.add(buttonMul);buttonMul.addActionListener(this);panel3.add(button[4]);button[4].addActionListener(this);panel3.add(button[5]);button[5].addActionListener(this);panel3.add(button[6]);button[6].addActionListener(this);panel3.add(buttonSub);buttonSub.addActionListener(this);panel3.add(button[1]);button[1].addActionListener(this);panel3.add(button[2]);button[2].addActionListener(this);panel3.add(button[3]);button[3].addActionListener(this);panel3.add(buttonDiv);buttonDiv.addActionListener(this);panel3.add(button[0]);button[0].addActionListener(this);panel3.add(buttonDot);buttonDot.addActionListener(this);panel3.add(buttonAdd);buttonAdd.addActionListener(this);panel3.add(buttonEqual);buttonEqual.addActionListener(this);w1Container.add(panel);this.setSize(300,205);this.setVisible(true);}publicvoidactionPerformed(ActionEventevent){Objecttemp=event.getSource();try{for(inti=0;i<=9;i++)if(temp==button[i]&&clickable==true){textAnswer.setText(textAnswer.getText()+Integer.toString(i));}if(temp==buttonDot&&clickable==true){booleanisDot=false;if(textAnswer.getText().length()==0)isDot=true;for(inti=0;iif('.'==textAnswer.getText().charAt(i)){isDot=true;break;}}if(isDot==false)textAnswer.setText(textAnswer.getText()+".");}if((temp==buttonAdd||temp==buttonSub||temp==buttonMul||temp==buttonDiv)&&clickable==true){if(temp==buttonAdd){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=1;}if(temp==buttonSub){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=2;}if(temp==buttonMul){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=3;}if(temp==buttonDiv){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=4;}}if(temp==buttonEqual&&clickable==true){if(times>0){vard=Double.parseDouble(textAnswer.getText());}if(key==1){answerd+=vard;textAnswer.setText(Double.toString(answerd));}if(key==2){answerd-=vard;textAnswer.setText(Double.toString(answerd));}if(key==3){answerd*=vard;textAnswer.setText(Double.toString(answerd));}if(key==4){if(vard==0){textAnswer.setText("除数不能为零");clickable=false;}else{answerd/=vard;textAnswer.setText(Double.toString(answerd));}}}if(temp==buttonCe){vard=answerd=times=0;textAnswer.setText("");clickable=true;}}catch(Exceptione){textAnswer.setText("非法操作");clickable=false;}}publicstaticvoidmain(Stringargs[]){Calculatorcalculator=newCalculator();}}
{
but[i]=newButton(button_name[i]);//写入按钮上的字
pan_2.add(but[i]);//按钮添加到面板2上
but[i].addActionListener(this);//加上监听
}
add(pan_2,BorderLayout.CENTER);//将面板2放到窗体的中间
addWindowListener(this);//窗体加上监听
setVisible(true);//设置可见
publicvoidactionPerformed(ActionEventarg0){
Strings_0,s_1;//定义字符创用以存储读出的东西
s_0=arg0.getActionCommand();//读到单击按钮时按钮上的字符串相当于记录命令
s_1=text_1.getText();//读出文本框1的内容
if(s_0.equals("1")||s_0.equals("2")||s_0.equals("3")||s_0.equals("4")||s_0.equals("5")||s_0.equals("6")||s_0.equals("7")||s_0.equals("8")||s_0.equals("9")||s_0.equals("0")){
if(n%2==0){
s_2=s_2+s_0;
text_1.setText(s_2);//如果这个时候没有输入运算符则直接将单击的东西连接在s_2上并显示在s_2上
n_1=(Float.valueOf(s_2)).floatValue();//在没有输入运算符的时候将数值记录在n_1上
if(n%2==1){
s_3=s_3+s_0;
text_1.setText(s_3);//如果这个时候输入了运算符则直接将单击的东西连接在s_2上并显示在s_2上
n_2=(Float.valueOf(s_3)).floatValue();//在输入了运算符的时候将数值记录在n_2上
if(s_0.equals("+")){
n=n+1;
c='+';
//text_1.setText("");
if(s_0.equals("-")){
c='-';
if(s_0.equals("*")){
c='*';
if(s_0.equals("/")){
c='/';
if(s_0.equals("=")){
s_3="";
if(c=='+'){
n_1=n_1+n_2;
s_1=Double.toString(n_1);
if(c=='-'){
n_1=n_1-n_2;
if(c=='*'){
n_1=n_1*n_2;
if(c=='/'){
n_1=n_1/n_2;
text_1.setText(s_1);
if(s_0.equals("清除")){
c='1';
n_1=0;
n_2=0;
s_1="";
s_2="";
text_1.setText("");
publicvoidwindowActivated(WindowEventarg0){
//TODOAuto-generatedmethodstub
publicvoidwindowClosed(WindowEventarg0){
publicvoidwindowClosing(WindowEventarg0){
Windoww=(Window)arg0.getSource();
setVisible(false);
w.dispose();
publicvoidwindowDeactivated(WindowEventarg0){
publicvoidwindowDeiconified(WindowEventarg0){
publicvoidwindowIconified(WindowEventarg0){
publicvoidwindowOpened(WindowEventarg0){
//这是主函数部分
importjavax.swing.JOptionPane;
publicclasscacalator_1{
publicstaticvoidmain(String[]args){
cacalatorcac_1=newcacalator();
importjavax.swing.*;
importjavax.swing.event.*;
importjava.awt.event.*;
classCalculatorextendsJFrameimplementsActionListener{
JPanelpanel,panel1,panel2,panel3;
JLabellabelSpace;
JButtonbuttonCe;
JButtonbutton[];
JButtonbuttonDot,buttonAdd,buttonSub,buttonMul,buttonDiv;
JButtonbuttonEqual;
JTextFieldtextAnswer;
booleanclickable;
doublevard,answerd;
shortkey=0;
inttimes=0;
publicCalculator(){
super("计算器");
clickable=true;
answerd=0;
textAnswer=newJTextField(20);
textAnswer.setText("");
textAnswer.setEditable(false);
panel=newJPanel();
Containerw1Container=this.getContentPane();
panel1=newJPanel();
panel2=newJPanel();
panel.setLayout(newBorderLayout());
panel.add(textAnswer,BorderLayout.CENTER);
panel.add(panel1,BorderLayout.SOUTH);
panel1.setLayout(newBorderLayout());
labelSpace=newJLabel("");
buttonCe=newJButton("Ce");
buttonCe.addActionListener(this);
panel1.add(panel2,BorderLayout.NORTH);
panel2.setLayout(newFlowLayout(FlowLayout.RIGHT));
panel2.add(buttonCe);
panel3=newJPanel();
panel1.add(panel3,BorderLayout.CENTER);
button=newJButton[10];
for(inti=0;ibutton[i]=newJButton(Integer.toString(i));}buttonDot=newJButton(".");buttonAdd=newJButton("+");buttonSub=newJButton("-");buttonMul=newJButton("*");buttonDiv=newJButton("/");buttonEqual=newJButton("=");panel3.setLayout(newGridLayout(4,4));panel3.add(button[7]);button[7].addActionListener(this);panel3.add(button[8]);button[8].addActionListener(this);panel3.add(button[9]);button[9].addActionListener(this);panel3.add(buttonMul);buttonMul.addActionListener(this);panel3.add(button[4]);button[4].addActionListener(this);panel3.add(button[5]);button[5].addActionListener(this);panel3.add(button[6]);button[6].addActionListener(this);panel3.add(buttonSub);buttonSub.addActionListener(this);panel3.add(button[1]);button[1].addActionListener(this);panel3.add(button[2]);button[2].addActionListener(this);panel3.add(button[3]);button[3].addActionListener(this);panel3.add(buttonDiv);buttonDiv.addActionListener(this);panel3.add(button[0]);button[0].addActionListener(this);panel3.add(buttonDot);buttonDot.addActionListener(this);panel3.add(buttonAdd);buttonAdd.addActionListener(this);panel3.add(buttonEqual);buttonEqual.addActionListener(this);w1Container.add(panel);this.setSize(300,205);this.setVisible(true);}publicvoidactionPerformed(ActionEventevent){Objecttemp=event.getSource();try{for(inti=0;i<=9;i++)if(temp==button[i]&&clickable==true){textAnswer.setText(textAnswer.getText()+Integer.toString(i));}if(temp==buttonDot&&clickable==true){booleanisDot=false;if(textAnswer.getText().length()==0)isDot=true;for(inti=0;iif('.'==textAnswer.getText().charAt(i)){isDot=true;break;}}if(isDot==false)textAnswer.setText(textAnswer.getText()+".");}if((temp==buttonAdd||temp==buttonSub||temp==buttonMul||temp==buttonDiv)&&clickable==true){if(temp==buttonAdd){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=1;}if(temp==buttonSub){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=2;}if(temp==buttonMul){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=3;}if(temp==buttonDiv){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=4;}}if(temp==buttonEqual&&clickable==true){if(times>0){vard=Double.parseDouble(textAnswer.getText());}if(key==1){answerd+=vard;textAnswer.setText(Double.toString(answerd));}if(key==2){answerd-=vard;textAnswer.setText(Double.toString(answerd));}if(key==3){answerd*=vard;textAnswer.setText(Double.toString(answerd));}if(key==4){if(vard==0){textAnswer.setText("除数不能为零");clickable=false;}else{answerd/=vard;textAnswer.setText(Double.toString(answerd));}}}if(temp==buttonCe){vard=answerd=times=0;textAnswer.setText("");clickable=true;}}catch(Exceptione){textAnswer.setText("非法操作");clickable=false;}}publicstaticvoidmain(Stringargs[]){Calculatorcalculator=newCalculator();}}
button[i]=newJButton(Integer.toString(i));
buttonDot=newJButton(".");
buttonAdd=newJButton("+");
buttonSub=newJButton("-");
buttonMul=newJButton("*");
buttonDiv=newJButton("/");
buttonEqual=newJButton("=");
panel3.setLayout(newGridLayout(4,4));
panel3.add(button[7]);
button[7].addActionListener(this);
panel3.add(button[8]);
button[8].addActionListener(this);
panel3.add(button[9]);
button[9].addActionListener(this);
panel3.add(buttonMul);
buttonMul.addActionListener(this);
panel3.add(button[4]);
button[4].addActionListener(this);
panel3.add(button[5]);
button[5].addActionListener(this);
panel3.add(button[6]);
button[6].addActionListener(this);
panel3.add(buttonSub);
buttonSub.addActionListener(this);
panel3.add(button[1]);
button[1].addActionListener(this);
panel3.add(button[2]);
button[2].addActionListener(this);
panel3.add(button[3]);
button[3].addActionListener(this);
panel3.add(buttonDiv);
buttonDiv.addActionListener(this);
panel3.add(button[0]);
button[0].addActionListener(this);
panel3.add(buttonDot);
buttonDot.addActionListener(this);
panel3.add(buttonAdd);
buttonAdd.addActionListener(this);
panel3.add(buttonEqual);
buttonEqual.addActionListener(this);
w1Container.add(panel);
this.setSize(300,205);
this.setVisible(true);
publicvoidactionPerformed(ActionEventevent){
Objecttemp=event.getSource();
try{
for(inti=0;i<=9;i++)
if(temp==button[i]&&clickable==true){
textAnswer.setText(textAnswer.getText()+Integer.toString(i));
if(temp==buttonDot&&clickable==true){
booleanisDot=false;
if(textAnswer.getText().length()==0)
isDot=true;
for(inti=0;iif('.'==textAnswer.getText().charAt(i)){isDot=true;break;}}if(isDot==false)textAnswer.setText(textAnswer.getText()+".");}if((temp==buttonAdd||temp==buttonSub||temp==buttonMul||temp==buttonDiv)&&clickable==true){if(temp==buttonAdd){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=1;}if(temp==buttonSub){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=2;}if(temp==buttonMul){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=3;}if(temp==buttonDiv){if(times==0){answerd+=Double.parseDouble(textAnswer.getText());times++;}textAnswer.setText("");key=4;}}if(temp==buttonEqual&&clickable==true){if(times>0){vard=Double.parseDouble(textAnswer.getText());}if(key==1){answerd+=vard;textAnswer.setText(Double.toString(answerd));}if(key==2){answerd-=vard;textAnswer.setText(Double.toString(answerd));}if(key==3){answerd*=vard;textAnswer.setText(Double.toString(answerd));}if(key==4){if(vard==0){textAnswer.setText("除数不能为零");clickable=false;}else{answerd/=vard;textAnswer.setText(Double.toString(answerd));}}}if(temp==buttonCe){vard=answerd=times=0;textAnswer.setText("");clickable=true;}}catch(Exceptione){textAnswer.setText("非法操作");clickable=false;}}publicstaticvoidmain(Stringargs[]){Calculatorcalculator=newCalculator();}}
if('.'==textAnswer.getText().charAt(i)){
break;
if(isDot==false)
textAnswer.setText(textAnswer.getText()+".");
if((temp==buttonAdd||temp==buttonSub||temp==buttonMul||temp==buttonDiv)&&clickable==true){
if(temp==buttonAdd){
if(times==0){
answerd+=Double.parseDouble(textAnswer.getText());
times++;
key=1;
if(temp==buttonSub){
key=2;
if(temp==buttonMul){
key=3;
if(temp==buttonDiv){
key=4;
if(temp==buttonEqual&&clickable==true){
if(times>0){
vard=Double.parseDouble(textAnswer.getText());
if(key==1){
answerd+=vard;
textAnswer.setText(Double.toString(answerd));
if(key==2){
answerd-=vard;
if(key==3){
answerd*=vard;
if(key==4){
if(vard==0){
textAnswer.setText("除数不能为零");
clickable=false;
else{
answerd/=vard;
if(temp==buttonCe){
vard=answerd=times=0;
catch(Exceptione){
textAnswer.setText("非法操作");
publicstaticvoidmain(Stringargs[]){
Calculatorcalculator=newCalculator();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1