JAVA程序设计形考作业3Word格式.docx
- 文档编号:5080311
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:15
- 大小:346.62KB
JAVA程序设计形考作业3Word格式.docx
《JAVA程序设计形考作业3Word格式.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计形考作业3Word格式.docx(15页珍藏版)》请在冰点文库上搜索。
图1-2登录成功
图1-3登录失败
实验题2:
编写一个模拟计算器的程序。
使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。
运行结果:
加法:
Java简易计算器代码:
importjavax.swing.*;
importjavax.swing.JTextField;
importjava.awt.*;
importjava.awt.event.*;
importjava.lang.*;
importjava.awt.Color;
publicclassEx5_2extendsJFrameimplementsActionListener
{
privateJPanelp1=newJPanel();
//创建面板
privateJPanelp2=newJPanel();
privateJTextFieldt1;
//文本框1用来显示输入信息
privateJTextFieldt2;
//文本框2用来显示结果信息
privateJLabellabel;
//标签信息
StringBufferstr;
//显示屏所显示的字符串
doublex,y;
//x和y都是运算数
intz;
//Z表示单击了那一个运算符.0表示"
+"
1表示"
-"
2表示"
*"
3表示"
/"
privateJButtonb[]=newJButton[12];
//创建一个有12个按钮的数组
privateJButtonb1,b2,b3,b4,b5,b6,b7,b8;
//算术功能按钮
publicEx5_2()
{
super("
简易计算器"
);
//窗口名称
Containerc=getContentPane();
//创建内容面板对象
t1=newJTextField(30);
t1.setEditable(false);
//只能显示,不能编辑
t2=newJTextField(30);
t2.setEditable(false);
label=newJLabel("
欢迎使用小巫版计算器^_^o~努力!
"
label.setForeground(Color.blue);
//创建一个空字符串缓冲区
str=newStringBuffer();
p2.add(label);
//添加标签到面板
p2.add(t2);
//添加文本框到面板
p2.add(t1);
p2.setLayout(newGridLayout(4,1));
//把面扳布局为4行1列
for(inti=0;
i<
10;
i++)//分别为数组中0~9号的按钮设置标签,并注册监听器
Strings="
+i;
b[i]=newJButton(s);
b[i].addActionListener(this);
}
//实例化各个按钮
b[10]=newJButton("
-/+"
b[11]=newJButton("
."
b1=newJButton("
b2=newJButton("
Back"
b3=newJButton("
b4=newJButton("
C"
b5=newJButton("
b6=newJButton("
Sqrt"
b7=newJButton("
b8=newJButton("
="
//设置按钮前景色
12;
i++)
b[i].setForeground(Color.blue);
b1.setForeground(Color.red);
b3.setForeground(Color.red);
b5.setForeground(Color.red);
b7.setForeground(Color.red);
b2.setForeground(Color.blue);
b4.setForeground(Color.blue);
b6.setForeground(Color.red);
b8.setForeground(Color.blue);
//添加到面板
p1.add(b[7]);
p1.add(b[8]);
p1.add(b[9]);
p1.add(b1);
p1.add(b2);
p1.add(b[4]);
p1.add(b[5]);
p1.add(b[6]);
p1.add(b3);
p1.add(b4);
p1.add(b[1]);
p1.add(b[2]);
p1.add(b[3]);
p1.add(b5);
p1.add(b6);
p1.add(b[0]);
p1.add(b[10]);
p1.add(b[11]);
p1.add(b7);
p1.add(b8);
p1.setLayout(newGridLayout(4,5,5,5));
//注册监听器
b[10].addActionListener(this);
b[11].addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
//将面板添加到内容面板
c.add(p2);
c.add(p1);
c.setLayout(newFlowLayout());
//设置为顺序布局
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗口关闭动作
setVisible(true);
//设置为可见
setResizable(false);
//禁止调整框架大小
setSize(400,300);
//设置窗口大小
//主方法实现创建一个窗口
publicstaticvoidmain(String[]args)
{Ex5_2f=newEx5_2();
//按钮的事件处理
publicvoidactionPerformed(ActionEvente)
try
if(e.getSource()==b4)//选择"
清零
t1.setText("
0"
//把文本框清零
t1.setHorizontalAlignment(JTextField.RIGHT);
//文本对齐右边
str.setLength(0);
//清空字符串缓冲区以准备接收新的输入运算数
elseif(e.getSource()==b[10])//单击"
+/-"
选择输入的运算数是正数还是负数
x=Double.parseDouble(t1.getText().trim());
//trim函数作用是去掉字符串中的空格
+(-x));
elseif(e.getSource()==b5)//单击加号按钮获得x的值和z的值并清空y的值
y=0d;
z=0;
elseif(e.getSource()==b7)//单击减号按钮获得x的值和z的值并清空y的值
z=1;
elseif(e.getSource()==b3)//单击乘号按钮获得x的值和z的值并清空y的值
z=2;
elseif(e.getSource()==b1)//单击除号按钮获得x的值和z的值并清空y的值
z=3;
elseif(e.getSource()==b8)//单击等号按钮输出计算结果
switch(z)
case0:
+(x+y));
break;
case1:
+(x-y));
case2:
+(x*y));
case3:
+(x/y));
elseif(e.getSource()==b[11])//单击"
按钮输入小数
if(t1.getText().trim().indexOf('
.'
)!
=-1)//判断字符串中是否已经包含了小数点
else//如果没有小数点
if(t1.getText().trim().equals("
))//如果初时显示为0
t1.setText(str.append(e.getActionCommand()).toString());
elseif(t1.getText().trim().equals("
))//如果初时显示为空则不做任何操作
{}
else
elseif(e.getSource()==b6)//求平方根
if(x<
0)
数字格式异常"
+Math.sqrt(x));
if(e.getSource()==b[0])//如果选择的是"
这个数字键
))//如果显示屏显示的为零不做操作
y=Double.parseDouble(t1.getText().trim());
elseif(e.getSource()==b2)//选择的是back键
if(!
t1.getText().trim().equals("
))//如果显示屏显示的不是零
if(str.length()!
=1)
t1.setText(str.delete(str.length()-1,str.length()).toString());
//可能抛出字符串越界异常
catch(NumberFormatExceptione1){t1.setText("
catch(StringIndexOutOfBoundsExceptione1){t1.setText("
字符串索引越界"
}
}
三、实验总结与体会
通过这次的实验,我们主要学会了windowbuilder的使用,swing及SWT组件的用法,了解了Java图形用户界面开发步骤。
掌握Java图形用户界面常用组件的使用。
掌握Java图形用户界面事件处理。
对于事件处理,我觉得自己还不够好,简单的还行,稍难一点就不会了。
希望以后可以学到更多吧。
四、实验要求
将本实验报告与实验项目源码文件放在同一文件夹中,打包rar或zip文件提交作业。
作业完成时间:
2019年6月10日
评阅意见:
评阅得分:
评阅教师:
评阅时间:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序设计 作业