77范文网 - 专业文章范例文档资料分享平台

java计算器实验报告(2)

来源:网络收集 时间:2019-01-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

}

} });

}

buttonAdd = new Button(\buttonAdd.addActionListener(this);

buttonAdd.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyChar() == '+') AddFunction(1); } });

buttonSub = new Button(\

buttonSub.addActionListener(this);

buttonSub.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyChar() == '-') AddFunction(2); } });

buttonMul = new Button(\buttonMul.addActionListener(this);

buttonMul.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyChar() == '*') AddFunction(3); } });

buttonDiv = new Button(\

buttonDiv.addActionListener(this);

buttonDiv.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyChar() == '/') AddFunction(4); } });

buttonDot = new Button(\

buttonDot.addActionListener(this);

buttonDot.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyChar() == '.') {

}

textBuffer.append(e.getKeyChar()); answerText.setText(textBuffer.toString()); AddNum(); } } });

buttonSign = new Button(\buttonSign.addActionListener(this); buttonEqual = new Button(\buttonEqual.addActionListener(this);

buttonEqual.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyChar() == '=') OnGo(); } });

buttonSqrt = new Button(\buttonSqrt.addActionListener(this); buttonMod = new Button(\buttonMod.addActionListener(this); buttonReciprocal = new Button(\buttonReciprocal.addActionListener(this);

对菜单的初始化操作

initMenu()函数是对各菜单的初始化,先为其生成实例对象,再添加到MenuBar 的实例对象menuGroup中,MenuItem各项添加到相应的Menu中。

void initMenu() { /* * 先为各个菜单项生成实例对象,并为其设置相应的标签。MenuItem各项 * 还要设置 addActionListener(this) 增加委托事件任务。

*/

menuGroup = new MenuBar(); editMenu = new Menu(\编辑(E)\viewMenu = new Menu(\查看(V)\helpMenu = new Menu(\帮助(H)\

copyItem = new MenuItem(\复制(C) Ctrl+C\

MenuShortcut(KeyEvent.VK_C)); copyItem.addActionListener(this); pasteItem = new MenuItem(\粘贴(P) Ctrl+V\MenuShortcut(KeyEvent.VK_V)); pasteItem.addActionListener(this); standardModel = new MenuItem(\●标准型(T)\

}

standardModel.addActionListener(this);

numGroup = new CheckboxMenuItem(\数字分组(I)\numGroup.addItemListener(this);

aboutCal = new MenuItem(\关于计算器(A)\aboutCal.addActionListener(this);

/* 再把各个菜单相继加入到 MenuBar 中 */ menuGroup.add(editMenu); menuGroup.add(viewMenu); menuGroup.add(helpMenu); editMenu.add(copyItem); editMenu.add(pasteItem);

viewMenu.add(standardModel); viewMenu.add(numGroup); helpMenu.add(aboutCal);

对总框架的总体布局

OverallArrangement() 是根据mainFrame的框架大小,把文本框answerText,内存使用的情况文本框memoryState,内存操作键 MR MS M+ MC,退格键BackSpace清除键 CE ,清空键 C ,以及主键盘区的各键按照一定的比例位置加入到mainFrame中.

void OverallArrangement() { Panel textPanel = new Panel(); Panel upperPanel = new Panel(); Panel centerPanel = new Panel(); Panel mainPanel = new Panel(); Panel leftPanel = new Panel(); Panel rightPanel = new Panel();

//文本框的容器

//计算器上部分的容器 //计算器中部的容器 //主键盘区的容器 //内存区的容器

//数字及相应的操作键盘区

mainFrame.setMenuBar(menuGroup); //为主框架设置菜单栏 mainFrame.add(upperPanel,BorderLayout.NORTH); //把上容器放在主框架的北面 mainFrame.add(centerPanel); //把中容器放在主框架的中部

mainFrame.add(mainPanel,BorderLayout.SOUTH); //把主容器放在主框架的南面 /*设置主框架的上半部分*/ textPanel.add(answerText); upperPanel.add(textPanel);

//把文本框添加到文本容器中 //把文本容器放入上容器中

/*设置主框架的中部*/

//采用流式布局,各组件相互间隔10个像素

centerPanel.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));

centerPanel.add(memoryState); //把内存记忆框放在中容器中 centerPanel.add(buttonBackSpace); //把退格键放在中容器中 centerPanel.add(buttonCE); //把清除键放在中容器中 centerPanel.add(buttonC); //把清空键放在中容器中 /*设置主框架的下半部分*/

leftPanel.setLayout(new GridLayout(4,1,0,2)); //左下角的容器采用4*1的网式布局 leftPanel.add(buttonMC); //添加MC leftPanel.add(buttonMR); //添加MR leftPanel.add(buttonMS); //添加MS leftPanel.add(buttonMADD); //添加M+

mainPanel.add(leftPanel,BorderLayout.WEST);//把此容器放在主容器的西面

/*设置主键盘区*/

rightPanel.setLayout(new GridLayout(4,5,3,3)); //采用4*5的网式布局,相互间隔3各像素 /*添加各键*/

rightPanel.add(buttonNum[7]); rightPanel.add(buttonNum[8]); rightPanel.add(buttonNum[9]); rightPanel.add(buttonDiv); rightPanel.add(buttonSqrt); rightPanel.add(buttonNum[4]); rightPanel.add(buttonNum[5]); rightPanel.add(buttonNum[6]);

}

rightPanel.add(buttonMul); rightPanel.add(buttonMod); rightPanel.add(buttonNum[1]); rightPanel.add(buttonNum[2]); rightPanel.add(buttonNum[3]); rightPanel.add(buttonSub);

rightPanel.add(buttonReciprocal); rightPanel.add(buttonNum[0]); rightPanel.add(buttonSign); rightPanel.add(buttonDot); rightPanel.add(buttonAdd); rightPanel.add(buttonEqual);

mainPanel.add(rightPanel,BorderLayout.CENTER);

计算器构造函数是对各布局函数的调用

SimpleCalculator() { initMainFrame(); initTextField(); initButtons(); initMenu(); OverallArrangement(); reSet(); mainFrame.setVisible(true); }

B) 计算运算部分程序的执行过程:

a) 运算部分变量的定义

stringBuffer textBuffer; //记录数值的字符串 int numDot; //小数点的个数 int operator; //操作符:1-加法 2-减法 3-乘法 4-除法 double firstValue,secondValue,result; //第一、二个数及结果 boolean enterSecond; //是否已经输入了第二个数 int forFirOrSec; //此时输入的是第一个还是第二个数 boolean b_remFir,b_remSec,b_remFun; //指示是否此时还记的上次的数和运算符 int remFun; //记住上次的运算符 double remFir,remSec; // 记住上次参加运算的第一二个数

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java计算器实验报告(2)在线全文阅读。

java计算器实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/409650.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: