java 简单计算器.docx

上传人:b****1 文档编号:3161332 上传时间:2023-05-05 格式:DOCX 页数:22 大小:31.91KB
下载 相关 举报
java 简单计算器.docx_第1页
第1页 / 共22页
java 简单计算器.docx_第2页
第2页 / 共22页
java 简单计算器.docx_第3页
第3页 / 共22页
java 简单计算器.docx_第4页
第4页 / 共22页
java 简单计算器.docx_第5页
第5页 / 共22页
java 简单计算器.docx_第6页
第6页 / 共22页
java 简单计算器.docx_第7页
第7页 / 共22页
java 简单计算器.docx_第8页
第8页 / 共22页
java 简单计算器.docx_第9页
第9页 / 共22页
java 简单计算器.docx_第10页
第10页 / 共22页
java 简单计算器.docx_第11页
第11页 / 共22页
java 简单计算器.docx_第12页
第12页 / 共22页
java 简单计算器.docx_第13页
第13页 / 共22页
java 简单计算器.docx_第14页
第14页 / 共22页
java 简单计算器.docx_第15页
第15页 / 共22页
java 简单计算器.docx_第16页
第16页 / 共22页
java 简单计算器.docx_第17页
第17页 / 共22页
java 简单计算器.docx_第18页
第18页 / 共22页
java 简单计算器.docx_第19页
第19页 / 共22页
java 简单计算器.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java 简单计算器.docx

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

java 简单计算器.docx

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

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

当前位置:首页 > 医药卫生 > 基础医学

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

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