实验六七简单计算器Word下载.docx
- 文档编号:16667435
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:60.57KB
实验六七简单计算器Word下载.docx
《实验六七简单计算器Word下载.docx》由会员分享,可在线阅读,更多相关《实验六七简单计算器Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JFrame;
importjavax.swing.JTextField;
importjavax.swing.SwingConstants;
publicclassCalculatorextendsWindowAdapterimplementsActionListener{
JFrameframe;
JTextFieldshow;
JButtonbc,c,ce,ab,jia,jian,cheng,chu,equ,point,sqrt,ds,bfh,
zf;
//按钮退格,清空,复位,关于,加,减,乘,除,等号,小数点,2次方根,倒数,百分号,正负号
JButtonb[]=newJButton[10];
//按钮数组,数字键0~9
doublesum=0,getValue;
inti=0,j=0,p=0,l,action;
JDialogabout;
finalintslength=30;
//设置结果显示有效长度
publicvoiddisp(){
frame=newJFrame();
frame.setTitle("
xx的个人计算器"
);
frame.setSize(360,230);
frame.setLocation(380,260);
frame.setBackground(Color.LIGHT_GRAY);
frame.setLayout(newFlowLayout(FlowLayout.CENTER));
frame.setResizable(false);
//计算器disTop模块,包括数字显示文本框、back,ce,c,about按钮
show=newJTextField(31);
show.setText("
0"
show.setHorizontalAlignment(SwingConstants.RIGHT);
show.setEditable(false);
frame.add(show);
PaneldispTop=newPanel();
frame.add(dispTop);
dispTop.setLayout(newGridLayout(1,4,3,3));
bc=newJButton("
Back"
bc.setForeground(Color.BLUE);
dispTop.add(bc);
ce=newJButton("
CE"
ce.setForeground(Color.BLUE);
dispTop.add(ce);
c=newJButton("
C"
c.setForeground(Color.BLUE);
dispTop.add(c);
//广告按钮,显示计算器制作者
ab=newJButton("
About"
ab.setForeground(Color.BLUE);
dispTop.add(ab);
about=newJDialog(frame,"
关于计算器"
true);
Labelct=newLabel("
本计算器由xx制作"
1);
ct.setForeground(Color.RED);
about.add(ct,"
Center"
about.setSize(200,100);
about.setLocation(500,300);
//主要按钮显示面板包括disLeft和disRight
PaneldispMain=newPanel();
frame.add(dispMain);
dispMain.setLayout(newGridLayout(1,2,10,10));
//disLeft面板,包括0-9、+/-、。
这十二个按钮
PaneldispLeft=newPanel();
dispMain.add(dispLeft);
dispLeft.setLayout(newGridLayout(4,3,3,3));
PaneldispRight=newPanel();
//disRight面板,包括+、-、*、/、sqrt、%、1/x、=这个人几个按钮
dispMain.add(dispRight);
dispRight.setLayout(newGridLayout(4,2,3,3));
//新建0-9这是个按钮,并将其添加到disLeft中
for(l=9;
l>
=0;
l--){
b[l]=newJButton(String.valueOf(l));
dispLeft.add(b[l]);
b[l].addActionListener(this);
}
//新建其余按钮,并分别将其添加到各自的面板中
jia=newJButton("
+"
jia.setForeground(Color.RED);
jian=newJButton("
-"
jian.setForeground(Color.RED);
cheng=newJButton("
*"
cheng.setForeground(Color.RED);
chu=newJButton("
/"
chu.setForeground(Color.RED);
equ=newJButton("
="
equ.setForeground(Color.RED);
point=newJButton("
."
zf=newJButton("
+/-"
sqrt=newJButton("
sqrt"
bfh=newJButton("
%"
ds=newJButton("
1/x"
dispRight.add(chu);
dispRight.add(sqrt);
dispRight.add(cheng);
dispRight.add(bfh);
dispRight.add(jian);
dispRight.add(ds);
dispRight.add(jia);
dispRight.add(equ);
dispLeft.add(zf);
dispLeft.add(point);
//为各个按钮绑定监听器
about.addWindowListener(this);
bc.addActionListener(this);
ce.addActionListener(this);
c.addActionListener(this);
ab.addActionListener(this);
jia.addActionListener(this);
jian.addActionListener(this);
cheng.addActionListener(this);
chu.addActionListener(this);
equ.addActionListener(this);
point.addActionListener(this);
zf.addActionListener(this);
sqrt.addActionListener(this);
bfh.addActionListener(this);
ds.addActionListener(this);
frame.addWindowListener(this);
frame.setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
getValue=Double.valueOf(show.getText()).doubleValue();
if(e.getSource()==jia){//加运算,可连加
if(j==0){
sum=getValue;
}elseif(action==1){
sum+=getValue;
}
setSum();
j++;
p=0;
i=0;
action=1;
}elseif(e.getSource()==jian){//减运算,可连减
}elseif(action==2){
sum-=getValue;
action=2;
}elseif(e.getSource()==cheng){//乘运算,可连乘
}elseif(action==3){
sum*=getValue;
action=3;
}elseif(e.getSource()==chu){//除运算,可连除
if(j==0)
elseif(action==4){
sum/=getValue;
action=4;
}elseif(e.getSource()==equ){//等号,运算最后一个操作数
switch(action){
case1:
show.setText(String.valueOf(sum+=getValue));
break;
case2:
show.setText(String.valueOf(sum-=getValue));
case3:
show.setText(String.valueOf(sum*=getValue));
case4:
show.setText(String.valueOf(sum/=getValue));
j=0;
action=0;
}elseif(e.getSource()==point){//小数点,只能按一个小数点
if(p==0)
show.setText(show.getText()+e.getActionCommand());
p=1;
}elseif(e.getSource()==c||e.getSource()==ce){//清空与复位
sum=0;
show.setText("
}elseif(e.getSource()==bc){//退格
Strings=show.getText();
if(s.length()>
1){
show.setText("
"
for(l=0;
l<
s.length()-1;
l++){//按一下,删除尾部一位
chara=s.charAt(l);
show.setText(show.getText()+a);
}
}else
}elseif(e.getSource()==ab){//关于
about.setVisible(true);
}elseif(e.getSource()==sqrt){//开2次方根
sum=Math.sqrt(getValue);
}elseif(e.getSource()==ds){//求倒数
sum=1/getValue;
}elseif(e.getSource()==bfh){//百分号
sum=getValue/100;
}elseif(e.getSource()==zf){//正负号切换,正号不显示
chara=s.charAt(0);
if(a=='
-'
){
for(l=1;
s.length();
l++){//去掉负号
show.setText(show.getText()+s.charAt(l));
}elseif(getValue!
=0){//加上负号
+s);
for(l=0;
10;
l++){//0~9数字键触发
if(e.getSource()==b[l]){
if(i==0)
show.setText("
Strings=show.getText();
if(s.length()<
slength)
show.setText(show.getText()+e.getActionCommand());
if(e.getSource()==b[0]&
&
getValue==0&
p==0)
if(e.getSource()!
=b[0]&
show.setText(e.getActionCommand());
i++;
//i用来标记数字键触发的状态
publicvoidsetSum(){//把计算结果显示出来
show.setText(String.valueOf(sum));
Strings=show.getText();
chara=s.charAt((s.length()-1));
charb=s.charAt((s.length()-2));
if(a=='
0'
&
b=='
.'
){//如果是整数,则去掉后面的小数点和0
show.setText(String.valueOf(Math.round(sum)));
publicvoidwindowClosing(WindowEvente){
if(e.getSource()==about)
about.setVisible(false);
elseif(e.getSource()==frame)
System.exit(0);
publicstaticvoidmain(Stringargs[]){
newCalculator().disp();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 六七 简单 计算器