学号:1课程设计2014——2015学年第1学期课程名称软件开发工具学院计算机科学与技术学院专业软件工程班级姓名指导教师张能立1用源码论述Eclipse学习体会摘要:通过这半个个学期的学习,在张能立老师的教导下我们学习了以Eclipse为工具的Java编程,认识到了Eclipse在编译Java程序方面所带来的方便。经过半个学期的学习,对Eclipse也有了一定的了解,并且通过多次实验,我以Eclipse为平台,结合在java课上的学习,使用Java编译出了一个计算器的程序,在实际编写中总结我的学习体会,找出存在的不足从而提高自己的编程能力。关键字:EclipseJava计算器图形界面正文:Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开放源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。不用担心刚接触Eclipse不会使用,因为它很好上手,一些简单的基本功能一看就会,要是想了解得深入一些可以再看看使用说明,对于新手来说视频教程是很好的工具。但是,这些都是在没有老师的情况下,如果有位老师教你那更好了,不仅可以现场看到使用方法的演示,遇到不懂的地方你还可以随时发问。学习Eclipse不同于学习理论课程,这本课偏重于实践,不管老师讲得多么精彩,或是你听得多么明白,你都需要多加实践,只有看着你写2的一行行代码变成一个神奇的可运行的程序时,你才能感觉到这是多么愉悦的一件事为了验证我的学习成果,经过多次的实验,我成功的做出了一个计算器的Java程序。在设计程序之初,应先考虑好自己希望程序拥有什么样的计算功能。以我目前的能力而言,还是不能做出有很多功能的科学计算器,最终设定计算功能有最基本的加、减、乘、除计算功能、清除计算值的功能,还添加了三角函数,对数,阶乘,开方,求百分数等等的运算。1.首先应想清楚所需要的类。要用到的类有:awt图形编程中:java.awt.BorderLayout//区域布局java.awt.Color//提供颜色空间java.awt.GridLayout//以矩阵网格形式布局java.awt.event.ActionEventjava.awt.event.ActionListenerswing界面组件中javax.swing.JButton//按钮javax.swing.JFrame//窗体javax.swing.JPanel//面板容器javax.swing.JTextField//文本框接着就应定义计算器上各个按键的显示名称。在此,由于后面编译时的需要,将功能键(数字键和运算符键)分开来定义。还要为了在反序列化时,确保类版本的兼容性,在每个要序列化的类中加入的属性。基本键包括0~9数字,小数点,加减乘除运算符,等于号,以及百分数、倒数、开平方和正负号,三角函数,对数,阶乘等。功能键包括清除文本框CE键,还有三角函数,阶乘等这个过程的代码:publicclassGridLayout_ExamextendsJFrameimplementsMouseListener{staticJPanelpnl=newJPanel();staticJTextFieldtext=newJTextField();staticString[]name={1,2,3,*,4,5,6,/,7,8,9,+,0,.,-,=,CE,+/-,x^2,1/x,x^3,%,!,√,log,sin,cos,tan,ln};2.接下来就应该开始构建函数,设置计算器界面。先要初始化计算器。设置好计算器的背景颜色,定义好计算器的名称,设定计算器在屏幕上显示的位置。不允许修改计算器的大小,设置使得计算器各个组件大小要合适,这部分代码:publicstaticvoidmain(Stringargs[]){GridLayout_ExammainJFrame=newGridLayout_Exam();3//mainJFrame为顶层容器mainJFrame.setTitle(GridLayoutExample);mainJFrame.setResizable(false);//窗口大小不可变mainJFrame.setSize(350,300);mainJFrame.setLocationRelativeTo(null);//使窗口位于桌面的中央Containercontainer=mainJFrame.getContentPane();//container为中间层的容器container.setLayout(null);//使container的缺省布局管理器无效container.add(pnl);container.add(text);mainJFrame.setVisible(true);text.setBounds(20,10,300,30);//使文本框位于(20,10)处,文本框大小为300*30text.setBackground(Color.white);text.setHorizontalAlignment(JTextField.RIGHT);GridLayoutgrid=newGridLayout(6,3);pnl.setLayout(grid);pnl.setBounds(20,45,300,200);//使容器pn1位于(20,45)处,大小为200*200mainJFrame.go();}接下来,要设定好计算器的显示格式。1.文本框的设置:文本框是用于显示输入或输出数字。设置好文本框内数字的对齐方式,背景为白色,使用户结果时能清楚明了。不许修改结果文本框。text.setBounds(20,10,300,30);//使文本框位于(20,10)处,文本框大小为300*30text.setBackground(Color.white);text.setHorizontalAlignment(JTextField.RIGHT);2.基本键的设置:将键放在画板内,用网格布局器排布,数字键默认白色,加减乘除键黄色btn3=newJButton(name[2]);btn3.setSize(20,20);btn3.setMargin(newInsets(4,4,4,4));pnl.add(btn3);btn3.addMouseListener(this);btn_plus=newJButton(name[11]);4btn_plus.setSize(20,20);btn_plus.setMargin(newInsets(4,4,4,4));btn_plus.setBackground(Color.yellow);pnl.add(btn_plus);btn_plus.addMouseListener(this);3.功能键的设置:功能键设置为红色,此部分代码:btn_clear=newJButton(name[16]);btn_clear.setSize(20,20);btn_clear.setMargin(newInsets(4,4,4,4));btn_clear.setBackground(Color.red);pnl.add(btn_clear);btn_clear.addMouseListener(this);4.高级运算键的设置:平方,立方,倒数,三角函数等按键为绿色。此部分代码:btn_l=newJButton(name[28]);btn_l.setSize(20,20);btn_l.setMargin(newInsets(4,4,4,4));btn_l.setBackground(Color.green);pnl.add(btn_l);btn_l.addMouseListener(this);btn_s=newJButton(name[25]);btn_s.setSize(20,20);btn_s.setMargin(newInsets(4,4,4,4));btn_s.setBackground(Color.green);pnl.add(btn_s);btn_s.addMouseListener(this);在设置好界面后,就开始处理各个按键的事件处理。(1)数字键和小数点:如果输入的是小数点,而且之前没有小数点,则将小数点附在当前文本框结果的后面;如果输入的是数字,则将数字附在当前文本框结果后面。(2)CE键:将初始化计算器的各种值。(3)运算符键:如果是除法,则当除数为0时则报错;如果是倒数,当结果文本框为0时,也应提示错误信息“ERROR”;如果是百分号运算,则将结果文本框除以100,得到答案;如果是正负号运算,则将结果文本框乘以-1,得到答案。也应当注意双精度浮点数的运算。(4)高级运算键:完成sincoslog开方等等一系列的高级运算。5在处理好按键的各种功能后,就应该处理从结果文本框中获取数字。最后,写出程序的主函数,设置程序的开始运行。心得体会:JFrame类对于创建窗口很有效,它继承Container类,能够包含其他的组件。但是,在默认的情况下,单击窗口右上角的“关闭”按钮关闭窗口,只是设置为不可见的,如果希望在关闭窗口时退出程序的话,就应该在主函数中设置属性如:calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)GridLayout网格布局,是容器中各个组件呈网格状布局,平均占据容器的空间,创建该布局时需要指定网格的行数和列数,然后依次添加各个组件时,会按照先行后列的顺序依次添加。通过此次编写的计算器程序,使用中感觉Eclipse功能比较强大,不懂的地方从书上或者网上寻求帮助,也从而了解到Eclipse支持很多编程比如C++和Python,并且里面的java开发用户指南和平台插件开发指南对编程很有帮助。也由此而认识到在学习java语言编程中,不足之处还是有很多,需要在以后的学习中更深入的研究。也得益于本学期学习Eclipse,并在这次编程中对Ecl