Java可进行四则运算的计算器.docx
- 文档编号:4097530
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:19.18KB
Java可进行四则运算的计算器.docx
《Java可进行四则运算的计算器.docx》由会员分享,可在线阅读,更多相关《Java可进行四则运算的计算器.docx(19页珍藏版)》请在冰豆网上搜索。
Java可进行四则运算的计算器
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
importjava.awt.List;
importjavax.script.ScriptEngine;
importjavax.script.ScriptEngineManager;
importjavax.script.ScriptException;
publicclassjsqProgramextendsJFrame{
staticbooleanpd=false;//标志按下按键显示是否清零
staticbooleanfh=true;//标志是否可以输入小数点,用于确保一个数字中不能输入多个小数点
staticintcount=0;//记录左括号的个数
publicstaticvoidmain(String[]args){
/*------------定义窗口--------------*/
finalFramejf=newFrame();
jf.setTitle("计算器");//设置标题栏的显示
jf.setSize(290,315);//设置窗口长宽
jf.setLayout(null);//组件不会随窗口的大小而改变
jf.setResizable(false);//设置窗体大小不可更改
jf.setLocation(500,200);//设置窗口初始位置
jf.setVisible(true);//可以显示
/*=================定义文本框================*/
finalJTextFieldjtext=newJTextField();//创建一个文本框
jtext.setText("0");//初始化为空
jtext.setHorizontalAlignment(JTextField.RIGHT);//设置文本框右对齐
jtext.setEditable(false);//设置文本框不可编辑
/*==============定义按钮=====================*/
//-------CE----BackSpace
JButtonjbCE,jbBack;//定义控制按钮
//-------1----2--3---4---5---6---7---8---9---0
JButtonjb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,jb0;//定义数字按钮
//--------加----减----乘-----除----乘方-左括号-右括号--小数点--等号
JButtonjbAdd,jbLess,jbMul,jbDvs,jbPow,jbLpar,jbRpar,jbDpoi,jbEqs;//定义符号
/*==============创建组件=============*/
jbCE=newJButton("CE");
jbBack=newJButton("BackSpace");
jb7=newJButton("7");
jb8=newJButton("8");
jb9=newJButton("9");
jbAdd=newJButton("+");
jbPow=newJButton("^");
jb4=newJButton("4");
jb5=newJButton("5");
jb6=newJButton("6");
jbLess=newJButton("-");
jbLpar=newJButton("(");
jb1=newJButton("1");
jb2=newJButton("2");
jb3=newJButton("3");
jbMul=newJButton("*");
jbRpar=newJButton(")");
jb0=newJButton("0");
jbDpoi=newJButton(".");
jbDvs=newJButton("/");
jbEqs=newJButton("=");
/*===============添加组件=============*/
jf.add(jtext);
jf.add(jbCE);
jf.add(jbBack);
jf.add(jb7);
jf.add(jb8);
jf.add(jb9);
jf.add(jbAdd);
jf.add(jbPow);
jf.add(jb4);
jf.add(jb5);
jf.add(jb6);
jf.add(jbLess);
jf.add(jbLpar);
jf.add(jb1);
jf.add(jb2);
jf.add(jb3);
jf.add(jbMul);
jf.add(jbRpar);
jf.add(jb0);
jf.add(jbDpoi);
jf.add(jbDvs);
jf.add(jbEqs);
/*=========================布局=====================*/
jtext.setBounds(10,50,270,25);//第一行
jbCE.setBounds(10,85,120,40);//第二行
jbBack.setBounds(140,85,140,40);
jb7.setBounds(10,130,50,40);//第三行
jb8.setBounds(65,130,50,40);
jb9.setBounds(120,130,50,40);
jbAdd.setBounds(175,130,50,40);
jbLpar.setBounds(230,130,50,85);
jb4.setBounds(10,175,50,40);//第四行
jb5.setBounds(65,175,50,40);
jb6.setBounds(120,175,50,40);
jbLess.setBounds(175,175,50,40);
jb1.setBounds(10,220,50,40);//第五行
jb2.setBounds(65,220,50,40);
jb3.setBounds(120,220,50,40);
jbMul.setBounds(175,220,50,40);
jbRpar.setBounds(230,220,50,85);
jb0.setBounds(10,265,50,40);//第六行
jbDpoi.setBounds(65,265,50,40);
jbEqs.setBounds(120,265,50,40);
jbDvs.setBounds(175,265,50,40);
/*==========设置组件颜色============*/
jf.setBackground(SystemColor.white);
jbCE.setBackground(SystemColor.LIGHT_GRAY);
jbBack.setBackground(SystemColor.LIGHT_GRAY);
jb0.setBackground(SystemColor.LIGHT_GRAY);
jb1.setBackground(SystemColor.LIGHT_GRAY);
jb2.setBackground(SystemColor.LIGHT_GRAY);
jb3.setBackground(SystemColor.LIGHT_GRAY);
jb4.setBackground(SystemColor.LIGHT_GRAY);
jb5.setBackground(SystemColor.LIGHT_GRAY);
jb6.setBackground(SystemColor.LIGHT_GRAY);
jb7.setBackground(SystemColor.LIGHT_GRAY);
jb8.setBackground(SystemColor.LIGHT_GRAY);
jb9.setBackground(SystemColor.LIGHT_GRAY);
jbAdd.setBackground(SystemColor.LIGHT_GRAY);
jbLess.setBackground(SystemColor.LIGHT_GRAY);
jbMul.setBackground(SystemColor.LIGHT_GRAY);
jbDvs.setBackground(SystemColor.LIGHT_GRAY);
jbRpar.setBackground(SystemColor.LIGHT_GRAY);
jbLpar.setBackground(SystemColor.LIGHT_GRAY);
jbEqs.setBackground(SystemColor.LIGHT_GRAY);
jbDpoi.setBackground(SystemColor.LIGHT_GRAY);
/*===============设置文本颜色==============*/
jbCE.setForeground(SystemColor.BLUE);
jbBack.setForeground(SystemColor.RED);
jb0.setForeground(SystemColor.BLACK);
jb1.setForeground(SystemColor.BLACK);
jb2.setForeground(SystemColor.BLACK);
jb3.setForeground(SystemColor.BLACK);
jb4.setForeground(SystemColor.BLACK);
jb5.setForeground(SystemColor.BLACK);
jb6.setForeground(SystemColor.BLACK);
jb7.setForeground(SystemColor.BLACK);
jb8.setForeground(SystemColor.BLACK);
jb9.setForeground(SystemColor.BLACK);
jbDpoi.setForeground(SystemColor.BLACK);
jbAdd.setForeground(SystemColor.BLACK);
jbLess.setForeground(SystemColor.BLACK);
jbMul.setForeground(SystemColor.BLACK);
jbDvs.setForeground(SystemColor.BLACK);
jbRpar.setForeground(SystemColor.BLACK);
jbLpar.setForeground(SystemColor.BLACK);
jbEqs.setForeground(SystemColor.BLACK);
/*=============设置按钮的监听事件=========*/
//按键CE的监听
jbCE.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
fh=true;//标志可以输入小数点
count=0;//括号计数器归零
jtext.setText("0");//把文本框中的数据清零
}
});
//按键Backspace的监听
jbBack.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr;//用于保存文本框中的字符
intleng=jtext.getText().length();//获取当前文本框中字符串的长度
str=jtext.getText();//把文本框中的字符赋值给变量str
if(leng!
=1){//如果文本框中字符串的长度为不为"1"
if(str.substring(leng-1,leng).equals("(")){//如果文本框中最后一个字符是"("
count=count-1;//删除左括号,括号计数器减一
}
if(str.substring(leng-1,leng).equals(")")){//如果文本框中最后一个字符是"("
count=count+1;//删除右括号后,括号计数器加一
}
if(str.substring(leng-1,leng).equals(".")){//如果文本框中最后一个字符是小数点
fh=true;//则删除此小数点后,允许输入小数点
}
jtext.setText(str.substring(0,leng-1));//文本框退格一次
}
else{//如果文本框中的字符长度等于"1",那么直接把文本框中的字符换成“0”
jtext.setText("0");
}
}
});
//按键0的监听
jb0.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=jtext.getText().length();//获得当前文本框中字符串的长度
Stringmsg1,msg2;//用于保存截取的字符
Stringstr=jtext.getText();//把文本框中的字符赋值给变量str
msg1=str.substring(0,leng);//截取文本框中所有的字符
if(pd||msg1.equals("0")){//如果标志位允许清零,或者文本框中只有一个字符“0”
jtext.setText("");//则把文本框中的字符清零
pd=false;//清零标志位重新设置为禁止
}
msg2=str.substring(leng-1,leng);//截取文本框中最后一个字符
if(!
msg2.equals("/")){//如果最后一位字符不是"/"
if((!
(msg2.equals(")")))){//如果最后一位字符不是")"则可以输入“0”
jtext.setText(jtext.getText()+"0");//则把“0”输入文本框
}
}
}
});
//按键1的监听
jb1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=jtext.getText().length();//获得当前文本框中字符串的长度
Stringmsg1,msg2;//用于保存截取的字符
Stringstr=jtext.getText();//把文本框中的字符赋值给变量str
msg1=str.substring(0,leng);//截取文本框中所有的字符
if(pd||msg1.equals("0")){//如果标志位允许清零,或者文本框中只有一个字符“0”
jtext.setText("");//则把文本框中的字符清零
pd=false;//清零标志位重新设置为禁止
}
msg2=str.substring(leng-1,leng);//截取文本框中最后一个字符
if(!
(msg2.equals(")"))){//如果最后一位字符不是")"则可以输入“1”
jtext.setText(jtext.getText()+"1");//把“1”输入到文本框
}
}
});
//按键2的监听
jb2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=jtext.getText().length();//获得当前文本框中字符串的长度
Stringmsg1,msg2;//用于保存截取的字符
Stringstr=jtext.getText();//把文本框中的字符赋值给变量str
msg1=str.substring(0,leng);//截取文本框中所有的字符
if(pd||msg1.equals("0")){//如果标志位允许清零,或者文本框中只有一个字符“0”
jtext.setText("");//则把文本框中的字符清零
pd=false;//清零标志位重新设置为禁止
}
msg2=str.substring(leng-1,leng);//截取文本框中最后一个字符
if(!
(msg2.equals(")"))){//如果最后一位字符不是")"则可以输入“2”
jtext.setText(jtext.getText()+"2");//把“2”输入到文本框
}
}
});
//按键3的监听
jb3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=jtext.getText().length();//获得当前文本框中字符串的长度
Stringmsg1,msg2;//用于保存截取的字符
Stringstr=jtext.getText();//把文本框中的字符赋值给变量str
msg1=str.substring(0,leng);//截取文本框中所有的字符
if(pd||msg1.equals("0")){//如果标志位允许清零,或者文本框中只有一个字符“0”
jtext.setText("");//则把文本框中的字符清零
pd=false;//清零标志位重新设置为禁止
}
msg2=str.substring(leng-1,leng);//截取文本框中最后一个字符
if(!
(msg2.equals(")"))){//如果最后一位字符不是")"则可以输入“3”
jtext.setText(jtext.getText()+"3");//把“3”输入到文本框
}
}
});
//按键4的监听
jb4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=jtext.getText().length();//获得当前文本框中字符串的长度
Stringmsg1,msg2;//用于保存截取的字符
Stringstr=jtext.getText();//把文本框中的字符赋值给变量str
msg1=str.substring(0,leng);//截取文本框中所有的字符
if(pd||msg1.equals("0")){//如果标志位允许清零,或者文本框中只有一个字符“0”
jtext.setText("");//则把文本框中的字符清零
pd=false;//清零标志位重新设置为禁止
}
msg2=str.substring(leng-1,leng);//截取文本框中最后一个字符
if(!
(msg2.equals(")"))){//如果最后一位字符不是")"则可以输入“4”
jtext.setText(jtext.getText()+"4");//把“4”输入到文本框
}
}
});
//按键5的监听
jb5.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=jtext.getText().length();//获得当前文本框中字符串的长度
Stringmsg1,msg2;//用于保存截取的字符
Stringstr=jtext.getText();//把文本框中的字符赋值给变量str
msg1=str.substring(0,leng);//截取文本框中所有的字符
if(pd||msg1.equals("0")){//如果标志位允许清零,或者文本框中只有一个字符“0”
jtext.setText("");//则把文本框中的字符清零
pd=false;//清零标志位重新设置为禁止
}
msg2=str.substring(leng-1,leng);//截取文本框中最后一个字符
if(!
(msg2.equals(")"))){//如果最后一位字符不是")"则可以输入“5”
jtext.setText(jtext.getText()+"5");//把“5”输入到文本框
}
}
});
//按键6的监听
jb6.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intleng=j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 进行 四则运算 计算器