GUI实验计算器.docx
- 文档编号:27740228
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:22
- 大小:30.66KB
GUI实验计算器.docx
《GUI实验计算器.docx》由会员分享,可在线阅读,更多相关《GUI实验计算器.docx(22页珍藏版)》请在冰豆网上搜索。
GUI实验计算器
面向对象程序设计A〔Java〕
实验报告
实验名称:
___GUI实验______
实验类型:
________实验性实验_________
指导教师:
_________涌____________
专业班级:
______园艺1002____________
XX:
__________林少芳___________
学号:
_________20103379_________
实验地点:
________东六E-313___
日期:
2013年4月14日
实验三GUI实验
一、实验目的
练习面向对象的图形用户界面设计、界面布局、事件设计方法。
二、实验容
设计一个类似Windows计算器的Application应用程序。
三、实验设计
仿照Windows计算器,设计界面。
将contentPane分成两个jPanel(borderlayout),其中一个放置文本框,另一个继续划分为两局部,分别以FlowLayout和GridLayout的形式放置按钮。
按要求设置按钮,文本框等的Text值,及相应属性的修改。
设计方法:
设两个变量value1,value2分别存储运算符左右两个操作数,设置标识符flag,初值为0,此时输入的数传给value1,当按下+-*\时设置flag为1,此时输入的数字传给value2;即:
intvalue1=0;
intvalue2=0;
intflag=0;
Stringop="";
voidmethod(intv){
if(flag==0){
value1=value1*10+v;
Strings=String.valueOf(value1);
Text.setText(s+".");
}
else
{
value2=value2*10+v;
Strings=String.valueOf(value2);
Text.setText(s+".");
}
}
按下〞=〞时,根据value1,value2及op值进展计算并输出至文本框。
即:
voidequral_mouseClicked(MouseEvente){
if(op=="+"){
value1=value1+value2;
}
elseif(op=="-"){
value1=value1-value2;
}
elseif(op=="*"){
value1=value1*value2;
}
elseif(op=="\\"){
value1=value1/value2;
}
Text.setText(value1+".");
}
四、实验过程
实验过程:
1、采用JavaApplication方式建立应用程序框架;
2、仿照Windows计算器,利用多种布局方式实现界面设计;
3、完成简单的整数加、减、乘、除运算。
设计过程出现的问题:
如何设置按钮为下凹?
在properties中将border值设为loweredBleve
当op=〞\〞时提示错误;
解决方法:
将其改为〞\\〞;
如何将输入的数字转化为字符串型?
解决方法:
Strings=String.valueOf(value1);
五、实验结果
界面设计:
运行效果
七、附录:
关键代码〔给出适当注释,可读性高〕
packagetext2;
publicclassFrame1extendsJFrame{
JPanelcontentPane;
JMenuBarjMenuBar1=newJMenuBar();
JMenujMenuFile=newJMenu();
JMenuItemjMenuFileExit=newJMenuItem();
JMenujMenuHelp=newJMenu();
JMenuItemjMenuHelpAbout=newJMenuItem();
BorderLayoutborderLayout1=newBorderLayout();
JMenuItemjMenuItem1=newJMenuItem();
JMenuItemjMenuItem2=newJMenuItem();
JMenuItemjMenuItem3=newJMenuItem();
JMenujMenu1=newJMenu();
JMenuItemjMenuItem4=newJMenuItem();
JMenuItemjMenuItem5=newJMenuItem();
JPaneljPanel1=newJPanel();
JPaneljPanel2=newJPanel();
JTextFieldText=newJTextField();
BorderLayoutborderLayout2=newBorderLayout();
JPaneljPanel3=newJPanel();
JPaneljPanel4=newJPanel();
BorderLayoutborderLayout5=newBorderLayout();
FlowLayoutflowLayout1=newFlowLayout();
uttonC=newutton();
uttonCE=newutton();
uttonBackspace=newutton();
uttonkong=newutton();
uttonMC=newutton();
uttonaorm=newutton();
uttonsubtract=newutton();
uttonone=newutton();
uttonequral=newutton();
uttonthree=newutton();
uttonMR=newutton();
uttonzore=newutton();
uttonadd=newutton();
uttonMS=newutton();
uttonpercent=newutton();
uttonM=newutton();
uttondoc=newutton();
uttontwo=newutton();
uttonmultiply=newutton();
uttondaoshu=newutton();
GridLayoutgridLayout1=newGridLayout();
uttonsix=newutton();
uttonutton7=newutton();
uttonfive=newutton();
uttonfour=newutton();
uttonsqrt=newutton();
uttondivide=newutton();
uttonnine=newutton();
uttoneight=newutton();
uttonseven=newutton();
intvalue1=0;
intvalue2=0;
intflag=0;
Stringop="";
//Constructtheframe
publicFrame1(){
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try{
Init();
}
catch(Exceptione){
e.printStackTrace();
}
}
//Componentinitialization
privatevoidInit()throwsException{
contentPane=(JPanel)this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(newDimension(400,300));
this.setTitle("FrameTitle");
jMenuFile.setText("编辑(E)");
jMenuFileExit.setText("复制");
jMenuFileExit.addActionListener(newFrame1_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("查看");
jMenuHelpAbout.setText("标准型");
jMenuHelpAbout.addActionListener(newFrame1_jMenuHelpAbout_ActionAdapter(this));
jMenuItem1.setText("粘贴");
jMenuItem2.setText("科学型");
jMenuItem3.setText("数学分组");
jMenu1.setText("帮助");
jMenuItem4.setText("帮助主题");
jMenuItem5.setText("关于计算器");
Text.setDebugGraphicsOptions(0);
Text.setText("0.");
Text.setHorizontalAlignment(SwingConstants.RIGHT);
jPanel2.setLayout(borderLayout2);
jPanel4.setLayout(flowLayout1);
jPanel4.setDebugGraphicsOptions(0);
jPanel3.setLayout(gridLayout1);
jPanel1.setLayout(borderLayout5);
C.setText("C");
CE.setText("CE");
Backspace.setText("Backspace");
kong.setDebugGraphicsOptions(0);
kong.setHorizontalAlignment(SwingConstants.CENTER);
kong.setHorizontalTextPosition(SwingConstants.TRAILING);
kong.setText("");
MC.setText("MC");
aorm.setActionCommand("+/-");
aorm.setText("+/-");
subtract.setText("-");
subtract.addActionListener(newFrame1_subtract_actionAdapter(this));
one.setText("1");
one.addActionListener(newFrame1_one_actionAdapter(this));
gridLayout1.setColumns(6);
gridLayout1.setHgap(3);
gridLayout1.setRows(4);
gridLayout1.setVgap(3);
jMenuFile.setText("File");
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(newFrame1_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(newFrame1_jMenuHelpAbout_ActionAdapter(this));
seven.setText("7");
seven.addMouseListener(newFrame1_seven_mouseAdapter(this));
eight.setText("8");
eight.addMouseListener(newFrame1_eight_mouseAdapter(this));
nine.setText("9");
nine.addMouseListener(newFrame1_nine_mouseAdapter(this));
divide.setText("/");
divide.addActionListener(newFrame1_divide_actionAdapter(this));
sqrt.setText("sqrt");
MR.setText("MR");
four.setText("4");
four.addActionListener(newFrame1_four_actionAdapter(this));
five.setText("5");
five.addActionListener(newFrame1_five_actionAdapter(this));
six.setText("6");
six.addActionListener(newFrame1_six_actionAdapter(this));
two.setText("2");
two.addActionListener(newFrame1_two_actionAdapter(this));
three.setText("3");
three.addActionListener(newFrame1_three_actionAdapter(this));
zore.setText("0");
zore.addActionListener(newFrame1_zore_actionAdapter(this));
doc.setText(".");
add.setText("+");
add.addMouseListener(newFrame1_add_mouseAdapter(this));
equral.setText("=");
equral.addMouseListener(newFrame1_equral_mouseAdapter(this));
daoshu.setText("1/X");
daoshu.addActionListener(newFrame1_daoshu_actionAdapter(this));
percent.setText("%");
multiply.setText("*");
multiply.addActionListener(newFrame1_multiply_actionAdapter(this));
MS.setText("MS");
M.setText("M+");
jMenuFile.add(jMenuFileExit);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
this.setJMenuBar(jMenuBar1);
jMenuFile.add(jMenuFileExit);
jMenuFile.add(jMenuItem1);
jMenuHelp.add(jMenuHelpAbout);
jMenuHelp.add(jMenuItem2);
jMenuHelp.add(jMenuItem3);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
jMenuBar1.add(jMenu1);
jMenu1.add(jMenuItem4);
jMenu1.add(jMenuItem5);
contentPane.add(jPanel1,BorderLayout.CENTER);
contentPane.add(jPanel2,BorderLayout.NORTH);
jPanel2.add(Text,BorderLayout.CENTER);
jPanel1.add(jPanel4,BorderLayout.NORTH);
jPanel1.add(jPanel3,BorderLayout.CENTER);
jPanel4.add(kong,null);
jPanel4.add(Backspace,null);
jPanel4.add(CE,null);
jPanel4.add(C,null);
jPanel3.add(MC,null);
jPanel3.add(seven,null);
jPanel3.add(eight,null);
jPanel3.add(nine,null);
jPanel3.add(divide,null);
jPanel3.add(sqrt,null);
jPanel3.add(MR,null);
jPanel3.add(four,null);
jPanel3.add(five,null);
jPanel3.add(six,null);
jPanel3.add(multiply,null);
jPanel3.add(percent,null);
jPanel3.add(MS,null);
jPanel3.add(one,null);
jPanel3.add(two,null);
jPanel3.add(three,null);
jPanel3.add(subtract,null);
jPanel3.add(daoshu,null);
jPanel3.add(M,null);
jPanel3.add(zore,null);
jPanel3.add(aorm,null);
jPanel3.add(doc,null);
jPanel3.add(add,null);
jPanel3.add(equral,null);
}
//File|Exitactionperformed
publicvoidjMenuFileExit_actionPerformed(ActionEvente){
System.exit(0);
}
//Help|Aboutactionperformed
publicvoidjMenuHelpAbout_actionPerformed(ActionEvente){
Frame1_AboutBoxdlg=newFrame1_AboutBox(this);
DimensiondlgSize=dlg.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
dlg.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//Overriddensowecanexitwhenwindowisclosed
protectedvoidprocessWindowEvent(WindowEvente){
super.processWindowEvent(e);
if(e.getID()==WindowEvent.WINDOW_CLOSING){
jMenuFileExit_actionPerformed(null);
}
}
voidmethod(intv){
if(flag==0){
value1=value1*10+v;
Strings=String.valueOf(value1);
Text.setText(s+".");
}
else
{
value2=value2*10+v;
Strings=String.valueOf(value2);
Text.setText(s+".");
}
}
/*publicintGetnumber(){
Strings1=Text.getText();
s1=s1.substring(0,s1.length()-1);
intx=Integer.parseInt(s1);
returnx;
}*/
voidseven_mouseClicked(MouseEvente){
method(7);
}
voideight_mouseClicked(MouseEvente){
method(8);
}
voidadd_mouseClicked(MouseEvente){
flag=1;
op="+";
}
voidequral_mouseClicked(MouseEvente){
if(op=="+"){
value1=value1+value2;
}
elseif(op=="-"){
value1=value1-value2;
}
elseif(op=="*"){
value1=value1*value2;
}
elseif(op=="\\"){
value1=value1/value2;
}
Text.setText(value1+".");
}
voidnine_mouseClicked(MouseEvente){
method(9);
}
voidfour_actionPerformed(ActionEvente){
method(4);
}
voidfive_actionPerformed(ActionEvente){
method(5);
}
voidsix_actionPerformed(ActionEvente){
method(6);
}
voidone_actionPerformed(ActionEvente){
method
(1);
}
voidtwo_actionP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GUI 实验 计算器