java 简单计算器.docx
《java 简单计算器.docx》由会员分享,可在线阅读,更多相关《java 简单计算器.docx(22页珍藏版)》请在冰豆网上搜索。
java简单计算器
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.util.regex.*;
importjavax.script.*;
classCalculatorBoundaryextendsJFrame
{
publicstaticfinalintFRAME_WIDTH=449;//定义窗口的宽度
publicstaticfinalintFRAME_HEIGHT=288;//定义窗口的高度
publicstaticintFLAG=0;//用于控制文本框的显示
publicstaticintZERO=1;//用于控制用户的输入,如:
0009这种形式
publicstaticfinalFontFNT=newFont("宋体",0,20);//定义字体类型
publicstaticfinalPatternP=Ppile("[0-9]");//定义一个正则表达式
privateMatcherm;
privatestaticintCOUNT1=0;//统计左括号的个数
privatestaticintCOUNT2=0;//统计右括号的个数
privateStringstr;
privateStringBuffersb;
privateJButton[]jbu=newJButton[20];//定义按钮数组
//定义面板
privateJPaneljpan1=newJPanel();
privateJPaneljpan2=newJPanel();
privateJPaneljpan3=newJPanel();
privateJTextFieldjte=newJTextField();//用于存放输入的每一个数
privateJTextFieldjtf=newJTextField("0",35);//定义文本框,用于显示用户输入的表达式和计算结果
privateJTextAreajta=newJTextArea("错误信息描述:
");//定义文本域,用于显示表达的错误描述信息
privateJLabeljlab1=newJLabel("计算框:
");//定义标签
privateString[]strJbu={"1","2","3","4","5","6","7","8","9","0",
"+","-","*","/","(",")","=",".","BACK","CLEAR"};
//定义有参构造函数,用于初使化组件
publicCalculatorBoundary(Strings)
super(s);//调用父函数设置窗口的标题
//初使化按钮组件
for(inti=0;i{jbu[i]=newJButton(strJbu[i]);}//取消按钮边框for(inti=0;i{jbu[i].setFocusPainted(false);}}publicvoidlaunchFrame(){this.setSize(FRAME_WIDTH,FRAME_HEIGHT);//设置窗口的宽度和高度this.setLocation(400,260);//设置窗口的位置this.setResizable(false);//设置窗口不允许改变大小this.setLayout(null);//取消窗口的内在布局jtf.setEditable(false);//设置文本框jtf为只读jta.setEditable(false);//设置文本域jta为只读jpan1.setLayout(newFlowLayout(FlowLayout.LEFT));//设置面板jpan1的内在布局jpan1.setLocation(0,0);//设置面板jpan1的位置jpan1.setSize(444,40);//设置面板japn1的大小Fontfon=newFont("黑体",0,20);jlab1.setFont(fon);//设置标签jlab1的字体jpan1.add(jlab1);jtf.setFont(CalculatorBoundary.FNT);//设置文本框jtf的字体jtf.setCaretPosition(1);//设置文本框jtf的光标位置jpan1.add(jtf);//对面板jpan2的设置jpan2.setLocation(0,40);jpan2.setSize(300,222);jpan2.setLayout(newGridLayout(5,4,5,5));//添加按钮到面板jpan2上for(inti=0;i{jpan2.add(jbu[i]);}//对面板jpan3的设置jpan3.setLayout(newGridLayout(1,1));jpan3.setLocation(300,40);jpan3.setSize(145,223);//jpan3.setBackground(Color.RED);jta.setLineWrap(true);jta.setEditable(false);jpan3.add(jta);//把面板添加到窗口里this.add(jpan1);this.add(jpan2);this.add(jpan3);this.setVisible(true);//显示窗口//添加窗口关闭事件this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});//添加按钮事件for(inti=0;i{jbu[i].addActionListener(newMonitor());}}//定义事件类用于监听事件源发出的事件privateclassMonitorimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(CalculatorBoundary.FLAG==1){jtf.setText("");CalculatorBoundary.FLAG=0;}//对按钮"1"的事件进行处理if(e.getSource()==jbu[0]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"1");jte.setText(jte.getText()+"1");}}//对按钮"2"的事件进行处理elseif(e.getSource()==jbu[1]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"2");jte.setText(jte.getText()+"2");}}//对按钮"3"的事件进行处理elseif(e.getSource()==jbu[2]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"3");jte.setText(jte.getText()+"3");}}//对按钮"4"的事件进行处理elseif(e.getSource()==jbu[3]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"4");jte.setText(jte.getText()+"4");}}//对按钮"5"的事件进行处理elseif(e.getSource()==jbu[4]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"5");jte.setText(jte.getText()+"5");}}//对按钮"6"的事件进行处理elseif(e.getSource()==jbu[5]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"6");jte.setText(jte.getText()+"6");}}//对按钮"7"的事件进行处理elseif(e.getSource()==jbu[6]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"7");jte.setText(jte.getText()+"7");}}//对按钮"8"的事件进行处理elseif(e.getSource()==jbu[7]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"8");jte.setText(jte.getText()+"8");}}//对按钮"9"的事件进行处理elseif(e.getSource()==jbu[8]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"9");jte.setText(jte.getText()+"9");}}//对按钮"0"的事件进行处理elseif(e.getSource()==jbu[9]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"0");jte.setText(jte.getText()+"0");}if(jte.getText().equals("0")){CalculatorBoundary.ZERO=0;}System.out.println("jte.getText():"+jte.getText()+""+"ZERO:"+CalculatorBoundary.ZERO);}//对按钮"+"的事件进行处理elseif(e.getSource()==jbu[10]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(jtf.getText()+"+");jte.setText("");CalculatorBoundary.ZERO=1;}elseif((str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/"))&&jtf.getText().length()!=1){jtf.setText(sb.substring(0,sb.length()-1)+"+");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"-"的事件进行处理elseif(e.getSource()==jbu[11]){str=jtf.getText();if(str.equals("0")){jtf.setText("");}if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")||str.length()==0||str.equals("(")){jtf.setText(jtf.getText()+"-");jte.setText("");CalculatorBoundary.ZERO=1;}elseif(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")){jtf.setText(sb.substring(0,sb.length()-1)+"-");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"*"的事件进行处理elseif(e.getSource()==jbu[12]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(j
jbu[i]=newJButton(strJbu[i]);
}
//取消按钮边框
for(inti=0;i{jbu[i].setFocusPainted(false);}}publicvoidlaunchFrame(){this.setSize(FRAME_WIDTH,FRAME_HEIGHT);//设置窗口的宽度和高度this.setLocation(400,260);//设置窗口的位置this.setResizable(false);//设置窗口不允许改变大小this.setLayout(null);//取消窗口的内在布局jtf.setEditable(false);//设置文本框jtf为只读jta.setEditable(false);//设置文本域jta为只读jpan1.setLayout(newFlowLayout(FlowLayout.LEFT));//设置面板jpan1的内在布局jpan1.setLocation(0,0);//设置面板jpan1的位置jpan1.setSize(444,40);//设置面板japn1的大小Fontfon=newFont("黑体",0,20);jlab1.setFont(fon);//设置标签jlab1的字体jpan1.add(jlab1);jtf.setFont(CalculatorBoundary.FNT);//设置文本框jtf的字体jtf.setCaretPosition(1);//设置文本框jtf的光标位置jpan1.add(jtf);//对面板jpan2的设置jpan2.setLocation(0,40);jpan2.setSize(300,222);jpan2.setLayout(newGridLayout(5,4,5,5));//添加按钮到面板jpan2上for(inti=0;i{jpan2.add(jbu[i]);}//对面板jpan3的设置jpan3.setLayout(newGridLayout(1,1));jpan3.setLocation(300,40);jpan3.setSize(145,223);//jpan3.setBackground(Color.RED);jta.setLineWrap(true);jta.setEditable(false);jpan3.add(jta);//把面板添加到窗口里this.add(jpan1);this.add(jpan2);this.add(jpan3);this.setVisible(true);//显示窗口//添加窗口关闭事件this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});//添加按钮事件for(inti=0;i{jbu[i].addActionListener(newMonitor());}}//定义事件类用于监听事件源发出的事件privateclassMonitorimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(CalculatorBoundary.FLAG==1){jtf.setText("");CalculatorBoundary.FLAG=0;}//对按钮"1"的事件进行处理if(e.getSource()==jbu[0]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"1");jte.setText(jte.getText()+"1");}}//对按钮"2"的事件进行处理elseif(e.getSource()==jbu[1]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"2");jte.setText(jte.getText()+"2");}}//对按钮"3"的事件进行处理elseif(e.getSource()==jbu[2]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"3");jte.setText(jte.getText()+"3");}}//对按钮"4"的事件进行处理elseif(e.getSource()==jbu[3]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"4");jte.setText(jte.getText()+"4");}}//对按钮"5"的事件进行处理elseif(e.getSource()==jbu[4]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"5");jte.setText(jte.getText()+"5");}}//对按钮"6"的事件进行处理elseif(e.getSource()==jbu[5]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"6");jte.setText(jte.getText()+"6");}}//对按钮"7"的事件进行处理elseif(e.getSource()==jbu[6]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"7");jte.setText(jte.getText()+"7");}}//对按钮"8"的事件进行处理elseif(e.getSource()==jbu[7]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"8");jte.setText(jte.getText()+"8");}}//对按钮"9"的事件进行处理elseif(e.getSource()==jbu[8]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"9");jte.setText(jte.getText()+"9");}}//对按钮"0"的事件进行处理elseif(e.getSource()==jbu[9]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"0");jte.setText(jte.getText()+"0");}if(jte.getText().equals("0")){CalculatorBoundary.ZERO=0;}System.out.println("jte.getText():"+jte.getText()+""+"ZERO:"+CalculatorBoundary.ZERO);}//对按钮"+"的事件进行处理elseif(e.getSource()==jbu[10]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(jtf.getText()+"+");jte.setText("");CalculatorBoundary.ZERO=1;}elseif((str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/"))&&jtf.getText().length()!=1){jtf.setText(sb.substring(0,sb.length()-1)+"+");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"-"的事件进行处理elseif(e.getSource()==jbu[11]){str=jtf.getText();if(str.equals("0")){jtf.setText("");}if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")||str.length()==0||str.equals("(")){jtf.setText(jtf.getText()+"-");jte.setText("");CalculatorBoundary.ZERO=1;}elseif(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")){jtf.setText(sb.substring(0,sb.length()-1)+"-");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"*"的事件进行处理elseif(e.getSource()==jbu[12]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(j
jbu[i].setFocusPainted(false);
publicvoidlaunchFrame()
this.setSize(FRAME_WIDTH,FRAME_HEIGHT);//设置窗口的宽度和高度
this.setLocation(400,260);//设置窗口的位置
this.setResizable(false);//设置窗口不允许改变大小
this.setLayout(null);//取消窗口的内在布局
jtf.setEditable(false);//设置文本框jtf为只读
jta.setEditable(false);//设置文本域jta为只读
jpan1.setLayout(newFlowLayout(FlowLayout.LEFT));//设置面板jpan1的内在布局
jpan1.setLocation(0,0);//设置面板jpan1的位置
jpan1.setSize(444,40);//设置面板japn1的大小
Fontfon=newFont("黑体",0,20);
jlab1.setFont(fon);//设置标签jlab1的字体
jpan1.add(jlab1);
jtf.setFont(CalculatorBoundary.FNT);//设置文本框jtf的字体
jtf.setCaretPosition
(1);//设置文本框jtf的光标位置
jpan1.add(jtf);
//对面板jpan2的设置
jpan2.setLocation(0,40);
jpan2.setSize(300,222);
jpan2.setLayout(newGridLayout(5,4,5,5));
//添加按钮到面板jpan2上
for(inti=0;i{jpan2.add(jbu[i]);}//对面板jpan3的设置jpan3.setLayout(newGridLayout(1,1));jpan3.setLocation(300,40);jpan3.setSize(145,223);//jpan3.setBackground(Color.RED);jta.setLineWrap(true);jta.setEditable(false);jpan3.add(jta);//把面板添加到窗口里this.add(jpan1);this.add(jpan2);this.add(jpan3);this.setVisible(true);//显示窗口//添加窗口关闭事件this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});//添加按钮事件for(inti=0;i{jbu[i].addActionListener(newMonitor());}}//定义事件类用于监听事件源发出的事件privateclassMonitorimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(CalculatorBoundary.FLAG==1){jtf.setText("");CalculatorBoundary.FLAG=0;}//对按钮"1"的事件进行处理if(e.getSource()==jbu[0]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"1");jte.setText(jte.getText()+"1");}}//对按钮"2"的事件进行处理elseif(e.getSource()==jbu[1]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"2");jte.setText(jte.getText()+"2");}}//对按钮"3"的事件进行处理elseif(e.getSource()==jbu[2]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"3");jte.setText(jte.getText()+"3");}}//对按钮"4"的事件进行处理elseif(e.getSource()==jbu[3]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"4");jte.setText(jte.getText()+"4");}}//对按钮"5"的事件进行处理elseif(e.getSource()==jbu[4]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"5");jte.setText(jte.getText()+"5");}}//对按钮"6"的事件进行处理elseif(e.getSource()==jbu[5]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"6");jte.setText(jte.getText()+"6");}}//对按钮"7"的事件进行处理elseif(e.getSource()==jbu[6]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"7");jte.setText(jte.getText()+"7");}}//对按钮"8"的事件进行处理elseif(e.getSource()==jbu[7]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"8");jte.setText(jte.getText()+"8");}}//对按钮"9"的事件进行处理elseif(e.getSource()==jbu[8]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"9");jte.setText(jte.getText()+"9");}}//对按钮"0"的事件进行处理elseif(e.getSource()==jbu[9]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"0");jte.setText(jte.getText()+"0");}if(jte.getText().equals("0")){CalculatorBoundary.ZERO=0;}System.out.println("jte.getText():"+jte.getText()+""+"ZERO:"+CalculatorBoundary.ZERO);}//对按钮"+"的事件进行处理elseif(e.getSource()==jbu[10]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(jtf.getText()+"+");jte.setText("");CalculatorBoundary.ZERO=1;}elseif((str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/"))&&jtf.getText().length()!=1){jtf.setText(sb.substring(0,sb.length()-1)+"+");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"-"的事件进行处理elseif(e.getSource()==jbu[11]){str=jtf.getText();if(str.equals("0")){jtf.setText("");}if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")||str.length()==0||str.equals("(")){jtf.setText(jtf.getText()+"-");jte.setText("");CalculatorBoundary.ZERO=1;}elseif(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")){jtf.setText(sb.substring(0,sb.length()-1)+"-");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"*"的事件进行处理elseif(e.getSource()==jbu[12]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(j
jpan2.add(jbu[i]);
//对面板jpan3的设置
jpan3.setLayout(newGridLayout(1,1));
jpan3.setLocation(300,40);
jpan3.setSize(145,223);
//jpan3.setBackground(Color.RED);
jta.setLineWrap(true);
jta.setEditable(false);
jpan3.add(jta);
//把面板添加到窗口里
this.add(jpan1);
this.add(jpan2);
this.add(jpan3);
this.setVisible(true);//显示窗口
//添加窗口关闭事件
this.addWindowListener(newWindowAdapter()
publicvoidwindowClosing(WindowEvente)
System.exit(0);
});
//添加按钮事件
for(inti=0;i{jbu[i].addActionListener(newMonitor());}}//定义事件类用于监听事件源发出的事件privateclassMonitorimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(CalculatorBoundary.FLAG==1){jtf.setText("");CalculatorBoundary.FLAG=0;}//对按钮"1"的事件进行处理if(e.getSource()==jbu[0]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"1");jte.setText(jte.getText()+"1");}}//对按钮"2"的事件进行处理elseif(e.getSource()==jbu[1]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"2");jte.setText(jte.getText()+"2");}}//对按钮"3"的事件进行处理elseif(e.getSource()==jbu[2]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"3");jte.setText(jte.getText()+"3");}}//对按钮"4"的事件进行处理elseif(e.getSource()==jbu[3]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"4");jte.setText(jte.getText()+"4");}}//对按钮"5"的事件进行处理elseif(e.getSource()==jbu[4]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"5");jte.setText(jte.getText()+"5");}}//对按钮"6"的事件进行处理elseif(e.getSource()==jbu[5]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"6");jte.setText(jte.getText()+"6");}}//对按钮"7"的事件进行处理elseif(e.getSource()==jbu[6]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"7");jte.setText(jte.getText()+"7");}}//对按钮"8"的事件进行处理elseif(e.getSource()==jbu[7]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"8");jte.setText(jte.getText()+"8");}}//对按钮"9"的事件进行处理elseif(e.getSource()==jbu[8]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"9");jte.setText(jte.getText()+"9");}}//对按钮"0"的事件进行处理elseif(e.getSource()==jbu[9]){if(jtf.getText().equals("0")){jtf.setText("");}str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}if(!str.equals(")")&&CalculatorBoundary.ZERO==1){jtf.setText(jtf.getText()+"0");jte.setText(jte.getText()+"0");}if(jte.getText().equals("0")){CalculatorBoundary.ZERO=0;}System.out.println("jte.getText():"+jte.getText()+""+"ZERO:"+CalculatorBoundary.ZERO);}//对按钮"+"的事件进行处理elseif(e.getSource()==jbu[10]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(jtf.getText()+"+");jte.setText("");CalculatorBoundary.ZERO=1;}elseif((str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/"))&&jtf.getText().length()!=1){jtf.setText(sb.substring(0,sb.length()-1)+"+");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"-"的事件进行处理elseif(e.getSource()==jbu[11]){str=jtf.getText();if(str.equals("0")){jtf.setText("");}if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")||str.length()==0||str.equals("(")){jtf.setText(jtf.getText()+"-");jte.setText("");CalculatorBoundary.ZERO=1;}elseif(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")){jtf.setText(sb.substring(0,sb.length()-1)+"-");jte.setText("");CalculatorBoundary.ZERO=1;}}//对按钮"*"的事件进行处理elseif(e.getSource()==jbu[12]){str=jtf.getText();if(str.length()!=0){sb=newStringBuffer(str);str=sb.substring(sb.length()-1,sb.length());}m=CalculatorBoundary.P.matcher(str);if(m.matches()||str.equals(")")){jtf.setText(j
jbu[i].addActionListener(newMonitor());
//定义事件类用于监听事件源发出的事件
privateclassMonitorimplementsActionListener
publicvoidactionPerformed(ActionEvente)
if(CalculatorBoundary.FLAG==1)
jtf.setText("");
CalculatorBoundary.FLAG=0;
//对按钮"1"的事件进行处理
if(e.getSource()==jbu[0])
if(jtf.getText().equals("0"))
str=jtf.getText();
if(str.length()!
=0)
sb=newStringBuffer(str);
str=sb.substring(sb.length()-1,sb.length());
if(!
str.equals(")")&&CalculatorBoundary.ZERO==1)
jtf.setText(jtf.getText()+"1");
jte.setText(jte.getText()+"1");
//对按钮"2"的事件进行处理
elseif(e.getSource()==jbu[1])
jtf.setText(jtf.getText()+"2");
jte.setText(jte.getText()+"2");
//对按钮"3"的事件进行处理
elseif(e.getSource()==jbu[2])
jtf.setText(jtf.getText()+"3");
jte.setText(jte.getText()+"3");
//对按钮"4"的事件进行处理
elseif(e.getSource()==jbu[3])
jtf.setText(jtf.getText()+"4");
jte.setText(jte.getText()+"4");
//对按钮"5"的事件进行处理
elseif(e.getSource()==jbu[4])
jtf.setText(jtf.getText()+"5");
jte.setText(jte.getText()+"5");
//对按钮"6"的事件进行处理
elseif(e.getSource()==jbu[5])
jtf.setText(jtf.getText()+"6");
jte.setText(jte.getText()+"6");
//对按钮"7"的事件进行处理
elseif(e.getSource()==jbu[6])
jtf.setText(jtf.getText()+"7");
jte.setText(jte.getText()+"7");
//对按钮"8"的事件进行处理
elseif(e.getSource()==jbu[7])
jtf.setText(jtf.getText()+"8");
jte.setText(jte.getText()+"8");
//对按钮"9"的事件进行处理
elseif(e.getSource()==jbu[8])
jtf.setText(jtf.getText()+"9");
jte.setText(jte.getText()+"9");
//对按钮"0"的事件进行处理
elseif(e.getSource()==jbu[9])
jtf.setText(jtf.getText()+"0");
jte.setText(jte.getText()+"0");
if(jte.getText().equals("0"))
CalculatorBoundary.ZERO=0;
System.out.println("jte.getText():
"+jte.getText()+""+"ZERO:
"+CalculatorBoundary.ZERO);
//对按钮"+"的事件进行处理
elseif(e.getSource()==jbu[10])
m=CalculatorBoundary.P.matcher(str);
if(m.matches()||str.equals(")"))
jtf.setText(jtf.getText()+"+");
jte.setText("");
CalculatorBoundary.ZERO=1;
elseif((str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/"))&&jtf.getText().length()!
=1)
jtf.setText(sb.substring(0,sb.length()-1)+"+");
//对按钮"-"的事件进行处理
elseif(e.getSource()==jbu[11])
if(str.equals("0"))
if(m.matches()||str.equals(")")||str.length()==0||str.equals("("))
jtf.setText(jtf.getText()+"-");
elseif(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/"))
jtf.setText(sb.substring(0,sb.length()-1)+"-");
//对按钮"*"的事件进行处理
elseif(e.getSource()==jbu[12])
jtf.setText(j
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1