软件开发工具.docx
《软件开发工具.docx》由会员分享,可在线阅读,更多相关《软件开发工具.docx(16页珍藏版)》请在冰豆网上搜索。
软件开发工具
用源码论述Eclipse学习体会
摘要:
本文使用功能强大的Eclipse开发工具和java开发语言开发出一款拥有自己特色的计算器小程序,其中Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
关键字:
JAVA计算器eclipse学习体会
1.编程语言
1.1java语言介绍
现代技术的发展,尤其是网络技术,给现代企业带来了许多新的机遇和挑战,如改善客户服务、全球化和信息检索等,这些在技术上反映为信息的获取、系统管理、系统集成、新技术的开发、Internet、Intranet等等与商业的结合。
而这些要求一个随处可用的开放的结构和在不同的平台之间低成本的信息传递方式,Java正好满足这些要求。
1.2java起源
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
另一方面,Java技术也不断更新。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1.x版发展到1.2版。
目前常用的Java平台基于Java1.2。
Java语言是一个支持网络计算的面向对象程序设计语言。
Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。
2.开发工具
2.1Eclipse体系结构
Eclipse是一种通用工具平台-一普遍适用的开放式扩展IDE。
它提供了功能丰富的开发环境,允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具。
Eclipse的设计思想是:
一切皆为插件!
Eclipse的核心是非常小的,其它的所有功能都是以插件的形式附加在这个核心之上。
这样的功能插件包括它的图形API(SWT/JFace)、Java开发环境插件(JDT)、插件开发环境(PDE)等。
Eclipse对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。
Eclipse加载插件有静态和动态之分。
所谓静态就是Eclipse启动时就加载,例如JDT、PDE等插件;所谓动态加载,就是Eclipse启动完成后,如果有事件发生,Eclipse会根据事件的ID的不同,自动加载对应的插件。
当件不再被使用时,它就会被在适当的时候清除出内存,因此即使装了一大堆插件里,也不必拍心某些不常用的插件白白占着内存。
2.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己经移植到了几个主流的操作系统平台,所以这已经不再是一个什么严重的问题了。
2.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具有无限扩展的可能,插你想插的一切!
3.设计过程
程序简介:
能够进行最基本的加、减、乘、除运算,是运用三个面板的叠加做出的界面。
通过按钮来进行简易计算器的各种运算,并正确实现运算功能。
如果输入错误会,程序会自动提示你的输入错误。
整个程序对话框可实现最小化,最大化,关闭。
源代码:
importjavax.swing.*;
importjava.io.*;
importjava.awt.*;
importjava.awt.event.*;
publicclasscounterextendsJFrameimplementsActionListener
{
JPaneltxtpanel,btnpanel,southpanel;//定义三个面板
JTextFieldtxtinput;//定义文本框
JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clearbtn,equalbtn;//aboutbtn;
GridLayoutgl;//创建布局
doublesimpan,hasil;
Stringoperasi;
publiccounter()
{
super("CalculatorCabe");//设置窗体标题
txtpanel=newJPanel();//创建面板
btnpanel=newJPanel();
southpanel=newJPanel();
txtinput=newJTextField(25);//创建文本框
txtinput.setEditable(false);//设置文本框不可编辑
txtinput.setHorizontalAlignment(JTextField.RIGHT);
txtinput.setText("");//设置起始文本框内容为空
b1=newJButton("1");//创建按钮
b2=newJButton("2");
b3=newJButton("3");
b4=newJButton("4");
b5=newJButton("5");
b6=newJButton("6");
b7=newJButton("7");
b8=newJButton("8");
b9=newJButton("9");
b0=newJButton("0");
bdes=newJButton(".");
multiply=newJButton("x");
multiply.setFont(newFont("Gothic",Font.BOLD,20));//设置画笔属性
multiply.setBackground(Color.black);//设置按钮边框颜色
multiply.setForeground(Color.blue);//设置画笔颜色
divide=newJButton("/");
divide.setFont(newFont("Gothic",Font.BOLD,20));
divide.setBackground(Color.black);
divide.setForeground(Color.blue);
add=newJButton("+");
add.setFont(newFont("Gothic",Font.BOLD,20));
add.setBackground(Color.black);
add.setForeground(Color.blue);
subtract=newJButton("-");
subtract.setFont(newFont("Gothic",Font.BOLD,20));
subtract.setBackground(Color.black);
subtract.setForeground(Color.blue);
clearbtn=newJButton("C");
clearbtn.setFont(newFont("Arial",Font.ITALIC,16));
clearbtn.setBackground(Color.black);
clearbtn.setForeground(Color.green);
clearbtn.addActionListener(newActionListener()//实现清空操作
{
publicvoidactionPerformed(ActionEventargh)
{
btnCancelActionPerformed();
}
});
equalbtn=newJButton("=");
equalbtn.setFont(newFont("Arial",Font.ITALIC,20));
equalbtn.setBackground(Color.black);
equalbtn.setForeground(Color.red);
b1.addActionListener(this);//添加监视器
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b0.addActionListener(this);
bdes.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
add.addActionListener(this);
subtract.addActionListener(this);
equalbtn.addActionListener(this);
getContentPane().add(txtpanel,BorderLayout.NORTH);//设置面板位置
txtpanel.add(txtinput);//添加文本框到txtpanel面板中
gl=newGridLayout(4,4,5,5);//设置面板布局
btnpanel.setLayout(gl);
getContentPane().add(btnpanel);//窗体中加入第二个面板
//把下列按钮加入到btnpanel面板中
btnpanel.add(b7);
btnpanel.add(b8);
btnpanel.add(b9);
btnpanel.add(multiply);
btnpanel.add(b4);
btnpanel.add(b5);
btnpanel.add(b6);
btnpanel.add(divide);
btnpanel.add(b1);
btnpanel.add(b2);
btnpanel.add(b3);
btnpanel.add(add);
btnpanel.add(b0);
btnpanel.add(bdes);
btnpanel.add(equalbtn);
btnpanel.add(subtract);
getContentPane().add(southpanel,BorderLayout.SOUTH);//设置面板位置
southpanel.add(clearbtn);//把clearbtn加入到southpanel面板中
setSize(250,300);//设置窗体初始大小
setVisible(true);//设置窗体可见
setLocation(300,200);//设置初始窗体在屏幕上的位置
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置程序的关闭方式(关闭窗体时,程序自动结束)
}
publicvoidbtnCancelActionPerformed()//清空文本框内容
{
txtinput.setText("");
}
publicvoidactionPerformed(ActionEvente)
{
try
{
Objectobjkcal=e.getSource();//取得按键
if(objkcal==b1)//如果按下b1,则把文本框中的内容置为1
txtinput.setText(txtinput.getText()+"1");
else
if(objkcal==b2)
txtinput.setText(txtinput.getText()+"2");
else
if(objkcal==b3)
txtinput.setText(txtinput.getText()+"3");
else
if(objkcal==b4)
txtinput.setText(txtinput.getText()+"4");
else
if(objkcal==b5)
txtinput.setText(txtinput.getText()+"5");
else
if(objkcal==b6)
txtinput.setText(txtinput.getText()+"6");
else
if(objkcal==b7)
txtinput.setText(txtinput.getText()+"7");
else
if(objkcal==b8)
txtinput.setText(txtinput.getText()+"8");
else
if(objkcal==b9)
txtinput.setText(txtinput.getText()+"9");
else
if(objkcal==b0)
txtinput.setText(txtinput.getText()+"0");
else
if(objkcal==bdes)
txtinput.setText(txtinput.getText()+".");
else//如果按下的是“+”号键,就是保存原来文本框内容并且清空
if(objkcal==add)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="plus";
txtinput.setText("");
}
else
if(objkcal==subtract)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="minus";
txtinput.setText("");
}
else
if(objkcal==divide)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="bagi";
txtinput.setText("");
}
else
if(objkcal==multiply)
{
simpan=Double.parseDouble(txtinput.getText());
operasi="kali";
txtinput.setText("");
}
else//如果按下“=”号,执行以下操作
if(objkcal==equalbtn)
{
if(operasi=="plus")
{
hasil=simpan+Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(operasi=="minus")
{
hasil=simpan-Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(txtinput.equals(txtinput.getText())&&objkcal==subtract)
{
hasil=simpan-Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(operasi=="bagi")
{
if(Double.parseDouble(txtinput.getText())==0)
JOptionPane.showMessageDialog(this,"被除数不能为0");
hasil=simpan/Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
else
if(operasi=="kali")
{
hasil=simpan*Double.parseDouble(txtinput.getText());
txtinput.setText(Double.toString(hasil));
}
}
}
catch(Exceptionouch)
{
JOptionPane.showMessageDialog(null,"错误输入","error",JOptionPane.ERROR_MESSAGE);
}//异常处理
}
publicstaticvoidmain(Stringargs[])
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exceptione)
{}//异常处理
newcounter();//创建窗体
}
}
课程设计运行举例:
运行结果截图:
◆乘法截图例如90*80=7200
◆除法截图
1.当被除数为零的时候程序会自动提示,被除数不能为零。
例如:
6/0
⏹加法截图例如5+4=9如下:
减法截图:
100-90=10.0如下:
4.心得体会
通过此次编写的计算器程序,使用中感觉Eclipse功能比较强大,不懂的地方从书上或者网上寻求帮助,也从而了解到Eclipse支持很多编程比如C++和Python,并且里面的java开发用户指南和平台插件开发指南对编程很有帮助。
也由此而认识到在学习java语言编程中,不足之处还是有很多,需要在以后的学习中更深入的研究。
也得益于本学期学习Eclipse,并在这次编程中对Eclipse更进一步的了解,我对图形接口有更深的理解,在此次计算器编程中得到了进一步提高。
通过此次的编程学习,提升了对Java语言的兴趣和了解,认识到自己存在的大量的不足,还需要更努力更进一步的学习。
在以后,我会慢慢了解Eclipse的强大功能,深入学习,在编写程序的能力上争取不断的提高。
5.参考文献
《Java核心编程技术》 电子工业出版社 刘中兵Java研究室 编著
《eclipse从入门到精通》 清华大学出版社 强锋科技 陈刚 编著
《精通Eclipse》 清华大学出版社 张大治 应群 编著
《Java程序设计与实践教程》清华大学出版社 王薇 董迎红 编著