java百宝箱之计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程系
《Java程序设计》设计报告题目:百宝箱之计算器
班级:
学号:
姓名:
小组名字:
小组成员:
指导教师:
报告递交日期:2011 年 12 月 15 日
百宝箱之—计算器
想不想拥有一个小软件,打开它,里面的的小工具应有尽有,想不想拥有一个小软件,里面的东西,随你怎么添加,
想不想拥有一个小软件,里面的小工具快捷而方便,。。。。
。。。。
。。。。
现在我们将一点一点来组装出这个软件:
软件最终样式图为:
目录
第1章系统设计目的 (1)
第2章系统实现思路 (2)
第3章系统详细设计 (3)
第4章系统调试运行 (7)
第5章参考文献 (9)
第6章附录 (10)
第1章系统设计目的
设计一个包含诸多小工具的小程序,可以实现以下功能:
1:图形化计算器,能精确计算;
2:打包小工具,便于添加;
3:执行完操作后,能够顺利所有的小程序。
第2章系统实现思路
装载所需的类库,创建主类BaiBaoXiang,再创建主函数main,接着创建监听按钮btn的事件监听器,然后设计事件监听器(JiSuanQi),就可以直接在编译器中运行程序。
1:界面设计
在主界面中设计一个JFrame窗口对象,并在其中加入一个按钮btn,创建桌面层对象JDesktopPane,设置大小位置,颜色;实现窗口对象的关闭按钮;
2:功能设计
按钮中加入监听器(jisuanqi)并进行监听。设计监听器的功能;当按钮按下
时,生成计算器界面,设计生成数字键按钮,文本框,并设计监听程序; 3:代码设计
编写每个控件的相关代码,并进行调试。
第3章系统详细设计
1:界面设计
创建一个按钮;窗口对象,及关闭按钮的功能;
主要代码:
static JFrame frm = new JFrame("百宝箱");//创建窗口对象static JButton btn = new JButton("计算器");//创建按钮对象
static Container cp =frm.getContentPane();//取得内容层
static JDesktopPane jdp = new JDesktopPane();//创建桌面层对象
/*************主函数****************/
public static void main(String[] args) {
//cp.setLayout(new
FlowLayout());/////**************;;*********这个问题费了我一个早上的时间没整出来,一定几下了啦布局的限制
cp.add(btn,BorderLayout.SOUTH); //将按钮添加到内容层中
cp.add(jdp); //将桌面层对象添加到内容层里
jdp.setBackground(Color.blue); //设置桌面层颜色
btn.addActionListener(new JiSuanQi()); //设置JiSuanQi监听btn
btn.setBackground(Color.yellow); //设置按钮的颜色
frm.setBounds(500, 200, 500, 500); //设置窗口的大小位置
frm.setVisible(true); //显示窗口
/************窗口的关闭**************/
frm .addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e) //监听器接口
{
System.exit(0); //退出(释放资源)
}
});
}
2:功能设计
对每个按钮项进行注册监听。点击不同按钮项时,显示不同数字和字符。,分别写各个按钮的实现功能
主要计算核心代码
/*************事件的监听*********/
text.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
ScriptEngineManager sem1 = new ScriptEngineManager(); //创建ScriptEngineManager脚本引擎实例 (工
厂类)
ScriptEngine se1 =
sem1.getEngineByName("js");//ScriptEngine 的寻找和创建任务委托给ScriptEngineManager 实例处理//JavaScript的脚本引擎
try
{ //异常的捕获处理
int leng10 = text.getText().length(); //
取出文本框里的长度值给leng10
if(leng10 ==
0){ //判断如果值等于0,
JOptionPane.showMessageDialog(null, "对不起,
您没有任何输入,请重新输入:");
text.requestFocusInWindow();
//文本框获得焦点
}
else {
String reslut =
se1.eval(text.getText()).toString();//计算文本框内的表达式并把值传给
reslut
text.setText(text.getText()+"="+reslut); //文本框显示计算的表达式
text.requestFocus(); //文本框获得焦点
}
} catch (ScriptException e1) {
JOptionPane.showMessageDialog(null, "表达式错误,
请重新输入!");
text.setText("");
//给文本框赋值为空达到清屏作用
text.requestFocus();
//文本框获得焦点
}
}
});