版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 论 文课程名称 软件开发工具 论文题目 用源码论述Eclipse学习体会 学生专业 学生班级 学生学号 学生姓名 任课老师 用源码论述Eclipse学习体会摘要:在java程序开发上,Eclipse所能给编译java程序带来了许多的方便。通过一段时间的学习,对此开发软件有了更加深入更加系统的了解。同时我们通过Eclipse集成开发平台也做了许多次实验,特别是在我使用java语言设计计算器程序,给了我带来很多关于Eclipse方面的学习体会,以此系统的把对Eclipse开发工具的使用与源码相结合做一个全面的总结,找出操作过程中的存在的不足,不断完善自己在编程和使用开发工具方面的能力,提高
2、个人的综合实力水平。关键字:Eclipse Java 计算器 正文: Eclipse简介:(1)Eclipse体系结构Eclipse是一种通用工具平台-一普遍适用的开放式扩展IDE。它提供了功能丰富的开发环境,允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具 Eclipse的设计思想是:一切皆为插件!Eclipse的核心是非常小的,其它的所有功能都是以插件的形式附加在这个核心之上。这样的功能插件包括它的图形API(SWT/JFace)、Java开发环境插件(JDT)、插件开发环境(PDE)等。Eclipse对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。
3、 Eclipse加载插件有静态和动态之分。所谓静态就是Eclipse启动时就加载,例如JDT、PDE等插件;所谓动态加载,就是Eclipse启动完成后,如果有事件发生,Eclipse会根据事件的ID的不同,自动加载对应的插件。当插件不再被使用时,它就会被在适当的时候清除出内存,因此即使装了一大堆插件里,也不必拍心某些不常用的插件白白占着内存。(2) 图形API Eclipse界面非常像亮,如果不事先告之.仅从界面上是活不出任何Java程序的影子。Java的标推图形API:AWT/Swing直是被人垢病的。用它写成的界面不够美观,界面响应速度还慢。Eclipse的SWT/JFace图形API彻底
4、地改变了这一状况。主要原因是SWT/JFace与AWT/Swing在实现上有很大不同:后者是模拟本机窗口组件,而前者则直接调用本机窗口组件,当本机投有所需组件时才进行摸拟。 当然SWT/JFace这种实现方祛也是有缺点的,它没有Java的跨操作系统的特性,每一个操作系统要用Eclipse都需要移植一次SWT/JFace ,这也是SWT/JFace最具争议的地方,不过因为SWT/JFace己经移植到了几个主流的操作系统平台,所以这已经不再是一个什么严重的问题了。(3) 开放式、可扩展的IDEEclipse有极为强大的集成开发环境,它集成了CVS、Junit和Ant,强大的代码重构功能傲视群雄。因
5、为Eclipse的安装包集成了Java开发环境的插件JDT。所以Eclipse默认是一个和Jbuilder类似的Java开发工具。但Eclipse不仅仅只是Java的开发工具,我们只需安装一个C/C+插件,就可以把它当成C/C+开发工具。只要有相应的插件,Eclipse也可以用做其它语言的开发工具。 Eclipse抽件扩展机制是其最突出的特点和优势,它使Eclipse提升到了一个平台的高度。我们可以利用Eclispe的插件开发环境(PDE)来开发自己的Eclispe插件,随己所需地扩展Eclipse的功能。这样的插件形式是多种多样的,它可以是一种编程工具,如C/C+,JSP,PHP等;也可以是
6、一个应用系统,如信息管理系统。Eclispe的插件机制使得Eclipse具有无限扩展的可能,插你想插的一切! Eclipse插件平台(4)Eclipse的总结Eclipse集成开发平台的强大,使其收到许多开发人员的青睐。我们知道此集成开发平台的目标不仅仅限于开发java,因为它允许构建与Eclipse环境无缝集成工具。由于Eclipse中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于Eclipse开发工具的使用,程序的图形界面美观和响应速度快,能给开发人员带来的很大的福音,是 时代进步的一个
7、小小步伐,同时就能给我们在开发软件方面带来了美感和提高开发效率;在学习Eclipse软件开发工具的过程中,经过我的多次实验,终于在Eclipse开发平台上完成了一个简单的计算器java程序,这是我一学期的学习成果,也是我的实践成果。此计算器具有功能为:加、减、乘、除、阶乘、倒数、平方根计算功能以及清除计算值的功能,还添加了M键的功能。设计过程u 需要引进的类:awt图形编程中: /区域布局 /提供颜色空间 /以矩阵网格形式布局swing界面组件中 /按钮 /窗体 /面板容器 /文本框接着定义计算器上的按键功能显示符号。用数组KEYS来存放符号键,数组COMMAND存删除键、初始化、清除键符号:
8、Backspace,CE, C;以及创建文本框对象resultText,分别给它们创建按钮,同时还需要定义一些在计算过程中要做出的判断条件,代码如下:private static final long serialVersionUID /* 计算器上的键的显示名字 */ private final String KEYS = "7", "8", "9", "/", "sqrt", "4", "5", "6", "*"
9、, "!", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" ; /* 计算器上的功能键的显示名字 */ private final String COMMAND = "Backspace", "CE", "C" ; /* 计算器上键的按钮 */ private
10、 JButton keys = new JButtonKEYS.length; /* 计算器上的功能键的按钮 */ private JButton commands = new JButtonCOMMAND.length; /* 计算结果文本框 */ private JTextField resultText = new JTextField("0"); / 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字 private boolean firstDigit = true; / 计算的中间结果。 private double resultNum = 0
11、.0; / 当前运算的运算符 private String operator = "=" / 操作是否合法 private boolean operateValidFlag = true;u 然后就应该开始构建函数,设置计算器界面。构建初始化函数,定义好计算器名称,显示位置,背景等属性,构建计算器按键的容器,利用网格布局器的排版,把功能键符号分别放到合适位置。接下来,要设定好计算器的显示格式。1. 文本框的设置:文本框是用于显示输入或输出数字。设置好文本框内数字的对齐方式,背景为白色,使用户结果时能清楚明了。不许修改结果文本框。 resultText.setHorizont
12、alAlignment(JTextField.RIGHT); / 不允许修改结果文本框 resultText.setEditable(false); / 设置文本框背景颜色为白色 resultText.setBackground(Color.white);2. 基本键的设置:将键放在画板内,用网格布局器排布,因为功能键共20个,所以设置为4行5列的网格形式。按键的前景颜色统一为白色,背景为黑色。此部分如下图:JPanel calckeysPanel = new JPanel(); / 用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 calckeysPa
13、nel.setLayout(new GridLayout(4, 5, 3, 3); for (int i = 0; i < KEYS.length; i+) keysi = new JButton(KEYSi); calckeysPanel.add(keysi); keysi.setForeground(Color.white); keysi.setBackground(Color.black); / 运算符键用红色标示,其他键用蓝色表示 keys3.setForeground(Color.white); keys8.setForeground(Color.white); keys13.
14、setForeground(Color.white); keys18.setForeground(Color.white); keys19.setForeground(Color.white); / 初始化功能键,都用红色标示。将功能键放在一个画板内 JPanel commandsPanel = new JPanel(); / 用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 commandsPanel.setLayout(new GridLayout(1, 3, 3, 3); for (int i = 0; i < COMMAND.length;
15、 i+) commandsi = new JButton(COMMANDi); commandsPanel.add(commandsi); commandsi.setForeground(Color.white); commandsi.setBackground(Color.black); u 在设置好界面后,就开始处理各个按键的事件处理。(1)Backspace键:删除或叫退格,将目前文本框内的最后一个字符去掉;如果文本框只有一个数字,则将它改成0;如果文本框内没有内容,则初始化计算器的各种值。(2)数字键和小数点:如果输入的是小数点,而且之前没有小数点,则将小数点附在当前文本框结果的后面;
16、如果输入的是数字,则将数字附在当前文本框结果后面。(3)C键:将初始化计算器的各种值。(4)运算符键:如果是除法,则当除数为0时提示错误信息“除数不能为0”;如果是倒数,当结果文本框为0时,也应提示错误信息“零没有倒数”;如果是百分号运算,则将结果文本框除以100,得到答案;如果是正负号运算,则将结果文本框乘以-1,得到答案。也应当注意双精度浮点数的运算。u 在处理好按键的各种功能后,就应该处理从结果文本框中获取数字。u 最后,写出程序的主函数,设置程序的开始运行。程序运行截图:1. 初始化界面:2. 当0为除数时:3. 计算0的倒数:4. 阶乘!:5. 计算平方根:6. Backspace键
17、的使用:7. 四则运算(以加法为例:4+5): 心得体会: 虽然以前多多少少接触过Eclipse这个开发工具,但是我并不了解它。然而经过一个学期软件开发工具的学习,我对Eclipse有了更加的了解,系统的获知了有关于Eclipse开发工具的知识,为我未来的开发又添加了一些技能基础。要想打胜仗,不仅仅需要有一个好武器,还需要使用好武器的技能,否则武器就会成为一块废铁;开发程序也不例外,有如Eclipse这样的优秀开发平台,仅仅有它不行,还必须学会如何使用它,如何快捷,高效的使用它,才是我们要追求的目标。当我接触到软件开发工具这门课时,我很是激动,因为对于开发程序来说,开发工具就像是一把利剑,有了
18、利剑才会让我们的软实力绽放出来。倘若你的编程能很好,但你却对于使用开发工具一窍不通,那么你在开发的过程中就会遇到很多的麻烦,速度也会很慢,效率很低,这些简直是浪费生命的行为。所以学好一些必要的软件开发工具是很有必要的。在接下来的学习中,我学到了Eclipse的环境、平台体系结构和Eclipse 集成开发环境,及在Eclipse中如何进行java开发,详细讲述Java代码的编写及Java代码的编译和调试;并经过第一次的上机实验我掌握了实际运用Eclipse环境来进行java编程。另外我也学习到了单元测试的方法和步骤以及TDD(软件驱动开发)和SWT程序开发,最后还了解到了MYSQL及建模工具的一
19、些知识。另外通过课堂外的五次上机实验实际操作了在Eclipse环境下的一些关于java编程以及调试的相关过程加深了我对Eclipse的学习。在这门课程外,通过另外一门Java程序设计与实践教程的学习,使我对使用java编程知识有了一定的基础知识掌握,让我更好的来学习计算机软件工具,更容易理解其中的知识,同时通过这门课程的学习我也知道了java的重要性。在学完这门课后,我利用Eclipse平台完成了一个简单计算器,设计开发计算器的过程,我学会在Eclipse环境下调试并运行,在不会的地方可以从书上、网上或者帮助文档上面查找资料。也充分地意识到自己在java语言上知识量的不足与缺陷,充分意识到要想
20、充分展现自己的编程水平,最起码最基本的就是要熟练运用开发平台。同时在这些实践中学会以及领悟了许多:Eclipse功能强大,但最重要的是学会并且熟练的使用Eclipse,因为这样能提高我们工作是效率,节约时间;遇到错误时千万不要轻易说出放弃,因为没有劳动就不会有成果,往往在我们遇到问题,解决问题的时候才会让我们学到知识;再者就是要有耐心,开发程序的过程是跟代码打交道,很容易出现错误。现在我们正在学习阶段,既然以选择这样一个充满创造力与刺激的职位方向,那么我们应该需要具有上面所说的基本素质。通过此次的编程学习,使我对java语言和Elipse有了更深的认识和了解,同时通过此次的编程我也认识到自己所
21、存在的大量的不足,还需要更努力更进一步的学习。在以后,我会慢慢了解Eclipse的强大功能,深入学习,在编写程序的能力上争取不断的提高。参考文献:1 Java核心编程技术 电子工业出版社 刘中兵Java研究室 编著2 Eclipse从入门到精通 清华大学出版社 强锋科技 陈刚 编著3 精通Eclipse 清华大学出版社 张大治 应群 编著4 Java程序设计与实践教程清华大学出版社 王薇 董迎红 编著程序源代码:package test;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;i
22、mport java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;/*一个计算器,与Windows附件自带计算器的标准版功能、界面相仿。 但还不支持键盘操作。*/public class Calculator extends JFrame implements ActionListener private
23、static final long serialVersionUID /* 计算器上的键的显示名字 */ private final String KEYS = "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "!", "1", "2", "3", "-", "
24、1/x", "0", "+/-", ".", "+", "=" ; /* 计算器上的功能键的显示名字 */ private final String COMMAND = "Backspace", "CE", "C" ; /* 计算器上键的按钮 */ private JButton keys = new JButtonKEYS.length; /* 计算器上的功能键的按钮 */ private JButton commands
25、= new JButtonCOMMAND.length; /* 计算结果文本框 */ private JTextField resultText = new JTextField("0"); / 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字 private boolean firstDigit = true; / 计算的中间结果。 private double resultNum = 0.0; / 当前运算的运算符 private String operator = "=" / 操作是否合法 private boolean ope
26、rateValidFlag = true; /*构造函数*/ public Calculator() super(); / 初始化计算器 init(); / 设置计算器的背景颜色 this.setBackground(Color.LIGHT_GRAY); this.setTitle("计算器"); / 在屏幕(500, 300)坐标处显示计算器 this.setLocation(500, 300); / 不许修改计算器的大小 this.setResizable(false); / 使计算器中各组件大小合适 this.pack(); /*初始化计算器*/ private vo
27、id init() / 文本框中的内容采用右对齐方式 resultText.setHorizontalAlignment(JTextField.RIGHT); / 不允许修改结果文本框 resultText.setEditable(false); / 设置文本框背景颜色为白色 resultText.setBackground(Color.white); / 初始化计算器上键的按钮,将键放在一个画板内 JPanel calckeysPanel = new JPanel(); / 用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 calckeysPanel.
28、setLayout(new GridLayout(4, 5, 3, 3); for (int i = 0; i < KEYS.length; i+) keysi = new JButton(KEYSi); calckeysPanel.add(keysi); keysi.setForeground(Color.white); keysi.setBackground(Color.black); / 运算符键用红色标示,其他键用蓝色表示 keys3.setForeground(Color.white); keys8.setForeground(Color.white); keys13.setF
29、oreground(Color.white); keys18.setForeground(Color.white); keys19.setForeground(Color.white); / 初始化功能键,都用红色标示。将功能键放在一个画板内 JPanel commandsPanel = new JPanel(); / 用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 commandsPanel.setLayout(new GridLayout(1, 3, 3, 3); for (int i = 0; i < COMMAND.length; i+)
30、 commandsi = new JButton(COMMANDi); commandsPanel.add(commandsi); commandsi.setForeground(Color.white); commandsi.setBackground(Color.black); / 下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部, / 将文本框放在北部,将calms画板放在计算器的南部。 / 新建一个大的画板,将上面建立的command和calckeys画板放在该画板内 JPanel panel1 = new JPanel(); / 画板采用边界布局管理器
31、,画板里组件之间的水平和垂直方向上间隔都为3象素 panel1.setLayout(new BorderLayout(3, 3); panel1.add("North", commandsPanel); panel1.add("South", calckeysPanel); / 建立一个画板放文本框 JPanel top = new JPanel(); top.setLayout(new BorderLayout(); top.add("Center", resultText); / 整体布局 getContentPane().set
32、Layout(new BorderLayout(3, 5); getContentPane().add("North", top); getContentPane().add("Center", panel1); / 为各按钮添加事件侦听器 / 都使用同一个事件侦听器,即本对象。本类的声明中有implements ActionListener for (int i = 0; i < KEYS.length; i+) keysi.addActionListener(this); for (int i = 0; i < COMMAND.lengt
33、h; i+) commandsi.addActionListener(this); /*处理事件*/ public void actionPerformed(ActionEvent e) / 获取事件源的标签 String label = e.getActionCommand(); if (label.equals(COMMAND0) / 用户按了"Backspace"键 handleBackspace(); else if (label.equals(COMMAND1) / 用户按了"CE"键 resultText.setText("0&qu
34、ot;); else if (label.equals(COMMAND2) / 用户按了"C"键 handleC(); else if ("0123456789.".indexOf(label) >= 0) / 用户按了数字键或者小数点键 handleNumber(label); / handlezero(zero); else / 用户按了运算符键 handleOperator(label); /*处理Backspace键被按下的事件*/ private void handleBackspace() String text = resultTex
35、t.getText(); int i = text.length(); if (i > 0) / 退格,将文本最后一个字符去掉 text = text.substring(0, i - 1); if (text.length() = 0) / 如果文本没有了内容,则初始化计算器的各种值 resultText.setText("0"); firstDigit = true; operator = "=" else / 显示新的文本 resultText.setText(text); /* * 处理数字键被按下的事件 * * param key */
36、private void handleNumber(String key) if (firstDigit) / 输入的第一个数字 resultText.setText(key); else if (key.equals(".") && (resultText.getText().indexOf(".") < 0) / 输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面 resultText.setText(resultText.getText() + "."); else if (!key.equ
37、als(".") / 如果输入的不是小数点,则将数字附在结果文本框的后面 resultText.setText(resultText.getText() + key); / 以后输入的肯定不是第一个数字了 firstDigit = false; /*处理C键被按下的事件*/ private void handleC() / 初始化计算器的各种值 resultText.setText("0"); firstDigit = true; operator = "=" /* * 处理运算符键被按下的事件 * * param key */ pr
38、ivate void handleOperator(String key) if (operator.equals("/") / 除法运算 / 如果当前结果文本框中的值等于0 if (getNumberFromText() = 0.0) / 操作不合法 operateValidFlag = false; resultText.setText("0不能为除数"); else resultNum /= getNumberFromText(); else if (operator.equals("1/x") / 倒数运算 if (resultNum = 0.0) / 操作不合法 operateValidFlag = false; resultText.setText("零没有倒数");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急预案预警信息
- 地铁建设应急预案
- 炭素厂应急预案
- 语言进化与认知发展-洞察及研究
- 引种应急预案范文
- 疫情应急预案网吧
- 高层公寓应急预案
- 管网防汛应急预案
- 投资理财入门掌握股票基金等投资工具
- 法务应急预案流程
- 2025江苏南通市通州区石港镇招聘便民服务中心人员2人考试笔试模拟试题及答案解析
- 2025年全国共青团“新团员入团”应知应会知识考试能力检测试卷及一套完整答案详解
- 2025年公务员面试《行政管理与领导力测试》备考题库及答案解析
- 个人所得税APP培训课件
- 教学成果奖申报技巧课件
- 部编版道德与法治五年级上册【第四单元】全单元课件
- 外研版六年级英语一般现在时的用法
- 广西基本医疗保险门诊特殊慢性病申报表
- 基桩完整性试验检测记录表(低应变法)
- 2022-2023学年新疆维吾尔自治区乌鲁木齐市第七十中学物理九年级第一学期期中学业水平测试试题(含解析)
- Q∕GDW 12178-2021 三相智能物联电能表技术规范
评论
0/150
提交评论