用源码论述Eclipse学习体会.docx
《用源码论述Eclipse学习体会.docx》由会员分享,可在线阅读,更多相关《用源码论述Eclipse学习体会.docx(19页珍藏版)》请在冰豆网上搜索。
用源码论述Eclipse学习体会
课程论文
课程名称软件开发工具
论文题目用源码论述Eclipse学习体会
学生专业
学生班级
学生学号
学生姓名
任课老师
用源码论述Eclipse学习体会
摘要:
在java程序开发上,Eclipse所能给编译java程序带来了许多的方便。
通过一段时间的学习,对此开发软件有了更加深入更加系统的了解。
同时我们通过Eclipse集成开发平台也做了许多次实验,特别是在我使用java语言设计计算器程序,给了我带来很多关于Eclipse方面的学习体会,以此系统的把对Eclipse开发工具的使用与源码相结合做一个全面的总结,找出操作过程中的存在的不足,不断完善自己在编程和使用开发工具方面的能力,提高个人的综合实力水平。
关键字:
EclipseJava计算器
正文:
Eclipse简介:
(1)Eclipse体系结构
Eclipse是一种通用工具平台-一普遍适用的开放式扩展IDE。
它提供了功能丰富的开发环境,允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具
Eclipse的设计思想是:
一切皆为插件!
Eclipse的核心是非常小的,其它的所有功能都是以插件的形式附加在这个核心之上。
这样的功能插件包括它的图形API(SWT/JFace)、Java开发环境插件(JDT)、插件开发环境(PDE)等。
Eclipse对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。
Eclipse加载插件有静态和动态之分。
所谓静态就是Eclipse启动时就加载,例如JDT、PDE等插件;所谓动态加载,就是Eclipse启动完成后,如果有事件发生,Eclipse会根据事件的ID的不同,自动加载对应的插件。
当插件不再被使用时,它就会被在适当的时候清除出内存,因此即使装了一大堆插件里,也不必拍心某些不常用的插件白白占着内存。
(2)图形API
Eclipse界面非常像亮,如果不事先告之.仅从界面上是活不出任何Java程序的影子。
Java的标推图形API:
AWT/Swing直是被人垢病的。
用它写成的界面不够美观,界面响应速度还慢。
Eclipse的SWT/JFace图形API彻底地改变了这一状况。
主要原因是SWT/JFace与AWT/Swing在实现上有很大不同:
后者是模拟本机窗口组件,而前者则直接调用本机窗口组件,当本机投有所需组件时才进行摸拟。
当然SWT/JFace这种实现方祛也是有缺点的,它没有Java的跨操作系统的特性,每一个操作系统要用Eclipse都需要移植一次SWT/JFace,这也是SWT/JFace最具争议的地方,不过因为SWT/JFace己经移植到了几个主流的操作系统平台,所以这已经不再是一个什么严重的问题了。
(3)开放式、可扩展的IDE
Eclipse有极为强大的集成开发环境,它集成了CVS、Junit和Ant,强大的代码重构功能傲视群雄。
因为Eclipse的安装包集成了Java开发环境的插件JDT。
所以Eclipse默认是一个和Jbuilder类似的Java开发工具。
但Eclipse不仅仅只是Java的开发工具,我们只需安装一个C/C++插件,就可以把它当成C/C++开发工具。
只要有相应的插件,Eclipse也可以用做其它语言的开发工具。
Eclipse抽件扩展机制是其最突出的特点和优势,它使Eclipse提升到了一个平台的高度。
我们可以利用Eclispe的插件开发环境
(PDE)来开发自己的Eclispe插件,随己所需地扩展Eclipse的功能。
这样的插件形式是多种多样的,它可以是一种编程工具,如C/C++,JSP,PHP等;也可以是一个应用系统,如信息管理系统。
Eclispe的插件机制使得Eclipse具有无限扩展的可能,插你想插的一切!
Eclipse—插件平台
(4)Eclipse的总结
Eclipse集成开发平台的强大,使其收到许多开发人员的青睐。
我们知道此集成开发平台的目标不仅仅限于开发java,因为它允许构建与Eclipse环境无缝集成工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
基于Eclipse开发工具的使用,程序的图形界面美观和响应速度快,能给开发人员带来的很大的福音,是 时代进步的一个小小步伐,同时就能给我们在开发软件方面带来了美感和提高开发效率;
在学习Eclipse软件开发工具的过程中,经过我的多次实验,终于在Eclipse开发平台上完成了一个简单的计算器java程序,这是我一学期的学习成果,也是我的实践成果。
此计算器具有功能为:
加、减、乘、除、阶乘、倒数、平方根计算功能以及清除计算值的功能,还添加了M键的功能。
设计过程
需要引进的类:
awt图形编程中:
java.awt.BorderLayout//区域布局
java.awt.Color//提供颜色空间
java.awt.GridLayout//以矩阵网格形式布局
java.awt.event.ActionEvent
java.awt.event.ActionListener
swing界面组件中
javax.swing.JButton//按钮
javax.swing.JFrame//窗体
javax.swing.JPanel//面板容器
javax.swing.JTextField//文本框
接着定义计算器上的按键功能显示符号。
用数组KEYS[]来存放符号键,数组COMMAND[]存删除键、初始化、清除键符号:
Backspace,CE,C;以及创建文本框对象resultText,分别给它们创建按钮,同时还需要定义一些在计算过程中要做出的判断条件,代码如下:
privatestaticfinallongserialVersionUID=-1516581450261334610L;
/**计算器上的键的显示名字*/
privatefinalString[]KEYS={"7","8","9","/","sqrt","4","5","6",
"*","!
","1","2","3","-","1/x","0","+/-",".","+","="};
/**计算器上的功能键的显示名字*/
privatefinalString[]COMMAND={"Backspace","CE","C"};
/**计算器上键的按钮*/
privateJButtonkeys[]=newJButton[KEYS.length];
/**计算器上的功能键的按钮*/
privateJButtoncommands[]=newJButton[COMMAND.length];
/**计算结果文本框*/
privateJTextFieldresultText=newJTextField("0");
//标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
privatebooleanfirstDigit=true;
//计算的中间结果。
privatedoubleresultNum=0.0;
//当前运算的运算符
privateStringoperator="=";
//操作是否合法
privatebooleanoperateValidFlag=true;
然后就应该开始构建函数,设置计算器界面。
构建初始化函数,定义好计算器名称,显示位置,背景等属性,构建计算器按键的容器,利用网格布局器的排版,把功能键符号分别放到合适位置。
接下来,要设定好计算器的显示格式。
1.文本框的设置:
文本框是用于显示输入或输出数字。
设置好文本框内数字的对齐方式,背景为白色,使用户结果时能清楚明了。
不许修改结果文本框。
resultText.setHorizontalAlignment(JTextField.RIGHT);
//不允许修改结果文本框
resultText.setEditable(false);
//设置文本框背景颜色为白色
resultText.setBackground(Color.white);
2.基本键的设置:
将键放在画板内,用网格布局器排布,因为功能键共20个,所以设置为4行5列的网格形式。
按键的前景颜色统一为白色,背景为黑色。
此部分如下图:
JPanelcalckeysPanel=newJPanel();
//用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
calckeysPanel.setLayout(newGridLayout(4,5,3,3));
for(inti=0;ikeys[i]=newJButton(KEYS[i]);
calckeysPanel.add(keys[i]);
keys[i].setForeground(Color.white);
keys[i].setBackground(Color.black);
}
//运算符键用红色标示,其他键用蓝色表示
keys[3].setForeground(Color.white);
keys[8].setForeground(Color.white);
keys[13].setForeground(Color.white);
keys[18].setForeground(Color.white);
keys[19].setForeground(Color.white);
//初始化功能键,都用红色标示。
将功能键放在一个画板内
JPanelcommandsPanel=newJPanel();
//用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
commandsPanel.setLayout(newGridLayout(1,3,3,3));
for(inti=0;icommands[i]=newJButton(COMMAND[i]);
commandsPanel.add(commands[i]);
commands[i].setForeground(Color.white);
commands[i].setBackground(Color.black);
}
在设置好界面后,就开始处理各个按键的事件处理。
(1)Backspace键:
删除或叫退格,将目前文本框内的最后一个字符去掉;如果文本框只有一个数字,则将它改成0;如果文本框内没有内容,则初始化计算器的各种值。
(2)数字键和小数点:
如果输入的是小数点,而且之前没有小数点,则将小数点附在当前文本框结果的后面;如果输入的是数字,则将数字附在当前文本框结果后面。
(3)C键:
将初始化计算器的各种值。
(4)运算符键:
如果是除法,则当除数为0时提示错误信息“除数不能为0”;如果是倒数,当结果文本框为0时,也应提示错误信息“零没有倒数”;如果是百分号运算,则将结果文本框除以100,得到答案;如果是正负号运算,则将结果文本框乘以-1,得到答案。
也应当注意双精度浮点数的运算。
在处理好按键的各种功能后,就应该处理从结果文本框中获取数字。
最后,写出程序的主函数,设置程序的开始运行。
程序运行截图:
1.初始化界面:
2.当0为除数时:
3.计算0的倒数:
4.阶乘!
:
5.计算平方根:
6.Backspace键的使用:
7.四则运算(以加法为例:
4+5):
心得体会:
虽然以前多多少少接触过Eclipse这个开发工具,但是我并不了解它。
然而经过一个学期软件开发工具的学习,我对Eclipse有了更加的了解,系统的获知了有关于Eclipse开发工具的知识,为我未来的开发又添加了一些技能基础。
要想打胜仗,不仅仅需要有一个好武器,还需要使用好武器的技能,否则武器就会成为一块废铁;开发程序也不例外,有如Eclipse这样的优秀开发平台,仅仅有它不行,还必须学会如何使用它,如何快捷,高效的使用它,才是我们要追求的目标。
当我接触到软件开发工具这门课时,我很是激动,因为对于开发程序来说,开发工具就像是一把利剑,有了利剑才会让我们的软实力绽放出来。
倘若你的编程能很好,但你却对于使用开发工具一窍不通,那么你在开发的过程中就会遇到很多的麻烦,速度也会很慢,效率很低,这些简直是浪费生命的行为。
所以学好一些必要的软件开发工具是很有必要的。
在接下来的学习中,我学到了Eclipse的环境、平台体系结构和Eclipse集成开发环境,及在Eclipse中如何进行java开发,详细讲述Java代码的编写及Java代码的编译和调试;并经过第一次的上机实验我掌握了实际运用Eclipse环境来进行java编程。
另外我也学习到了单元测试的方法和步骤以及TDD(软件驱动开发)和SWT程序开发,最后还了解到了MYSQL及建模工具的一些知识。
另外通过课堂外的五次上机实验实际操作了在Eclipse环境下的一些关于java编程以及调试的相关过程加深了我对Eclipse的学习。
在这门课程外,通过另外一门《Java程序设计与实践教程》的学习,使我对使用java编程知识有了一定的基础知识掌握,让我更好的来学习《计算机软件工具》,更容易理解其中的知识,同时通过这门课程的学习我也知道了java的重要性。
在学完这门课后,我利用Eclipse平台完成了一个简单计算器,设计开发计算器的过程,我学会在Eclipse环境下调试并运行,在不会的地方可以从书上、网上或者帮助文档上面查找资料。
也充分地意识到自己在java语言上知识量的不足与缺陷,充分意识到要想充分展现自己的编程水平,最起码最基本的就是要熟练运用开发平台。
同时在这些实践中学会以及领悟了许多:
Eclipse功能强大,但最重要的是学会并且熟练的使用Eclipse,因为这样能提高我们工作是效率,节约时间;遇到错误时千万不要轻易说出放弃,因为没有劳动就不会有成果,往往在我们遇到问题,解决问题的时候才会让我们学到知识;再者就是要有耐心,开发程序的过程是跟代码打交道,很容易出现错误。
现在我们正在学习阶段,既然以选择这样一个充满创造力与刺激的职位方向,那么我们应该需要具有上面所说的基本素质。
通过此次的编程学习,使我对java语言和Elipse有了更深的认识和了解,同时通过此次的编程我也认识到自己所存在的大量的不足,还需要更努力更进一步的学习。
在以后,我会慢慢了解Eclipse的强大功能,深入学习,在编写程序的能力上争取不断的提高。
参考文献:
1《Java核心编程技术》电子工业出版社刘中兵Java研究室编著
2《Eclipse从入门到精通》清华大学出版社强锋科技陈刚编著
3《精通Eclipse》清华大学出版社张大治应群编著
4《Java程序设计与实践教程》清华大学出版社王薇董迎红编著
程序源代码:
packagetest;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
/**一个计算器,与Windows附件自带计算器的标准版功能、界面相仿。
但还不支持键盘操作。
*/
publicclassCalculatorextendsJFrameimplementsActionListener{
privatestaticfinallongserialVersionUID=-1516581450261334610L;
/**计算器上的键的显示名字*/
privatefinalString[]KEYS={"7","8","9","/","sqrt","4","5","6",
"*","!
","1","2","3","-","1/x","0","+/-",".","+","="};
/**计算器上的功能键的显示名字*/
privatefinalString[]COMMAND={"Backspace","CE","C"};
/**计算器上键的按钮*/
privateJButtonkeys[]=newJButton[KEYS.length];
/**计算器上的功能键的按钮*/
privateJButtoncommands[]=newJButton[COMMAND.length];
/**计算结果文本框*/
privateJTextFieldresultText=newJTextField("0");
//标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
privatebooleanfirstDigit=true;
//计算的中间结果。
privatedoubleresultNum=0.0;
//当前运算的运算符
privateStringoperator="=";
//操作是否合法
privatebooleanoperateValidFlag=true;
/**构造函数*/
publicCalculator(){
super();
//初始化计算器
init();
//设置计算器的背景颜色
this.setBackground(Color.LIGHT_GRAY);
this.setTitle("计算器");
//在屏幕(500,300)坐标处显示计算器
this.setLocation(500,300);
//不许修改计算器的大小
this.setResizable(false);
//使计算器中各组件大小合适
this.pack();
}
/**初始化计算器*/
privatevoidinit(){
//文本框中的内容采用右对齐方式
resultText.setHorizontalAlignment(JTextField.RIGHT);
//不允许修改结果文本框
resultText.setEditable(false);
//设置文本框背景颜色为白色
resultText.setBackground(Color.white);
//初始化计算器上键的按钮,将键放在一个画板内
JPanelcalckeysPanel=newJPanel();
//用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
calckeysPanel.setLayout(newGridLayout(4,5,3,3));
for(inti=0;ikeys[i]=newJButton(KEYS[i]);
calckeysPanel.add(keys[i]);
keys[i].setForeground(Color.white);
keys[i].setBackground(Color.black);
}
//运算符键用红色标示,其他键用蓝色表示
keys[3].setForeground(Color.white);
keys[8].setForeground(Color.white);
keys[13].setForeground(Color.white);
keys[18].setForeground(Color.white);
keys[19].setForeground(Color.white);
//初始化功能键,都用红色标示。
将功能键放在一个画板内
JPanelcommandsPanel=newJPanel();
//用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
commandsPanel.setLayout(newGridLayout(1,3,3,3));
for(inti=0;icommands[i]=newJButton(COMMAND[i]);
commandsPanel.add(commands[i]);
commands[i].setForeground(Color.white);
commands[i].setBackground(Color.black);
}
//下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部,
//将文本框放在北部,将calms画板放在计算器的南部。
//新建一个大的画板,将上面建立的command和calckeys画板放在该画板内
JPanelpanel1=newJPanel();
//画板采用边界布局管理器,画板里组件之间的水平和垂直方向上间隔都为3象素
panel1.setLayout(newBorderLayout(3,3));
panel1.add("North",commandsPanel);
panel1.add("South",calckeysPanel);
//建立一个画板放文本框
JPaneltop=newJPanel();
top.setLayout(newBorderLayout());
top.add("Center",resultText);
//整体布局
getContentPane().setLayout(newBorderLayout(3,5));
getContentPane().add("North",top);
getContentPane().add("Center",panel1);
//为各按钮添加事件侦听器
//都使用同一个事件侦听器,即本对象。
本类的声明中有implementsActionListener
for(inti=0;ikeys[i].addActionListener(this);
}
for(inti=0;icommands[i].addActionListener(this);
}
}
/**处理事件*/
publicvoidactionPerformed(ActionEvente){
//获取事件源的标签
Stringlabel=e.getActionCommand();
if(label.equals(COMMAND[0])){
//用户按了"Backspace"键
handleBackspace();
}elseif(label.equals(COMMAND[1])){
//用户按了"CE"键
resultText.setText("0");
}elseif(label.equals(COMMAND[2])){
//用户按了"C"键
handleC();
}elseif("0123456789.".indexOf(label)>=0){
//用户按了数字键或者小数点键
handleNumber(label);
//handlezero(zero);
}else{
//用户按了运算符键
handleOperator(label);
}
}
/**处理Backspace键被按下的事件*/
privatevoidhandleBackspace(){
Stringtext=