第1章画图板系统_第1页
第1章画图板系统_第2页
第1章画图板系统_第3页
第1章画图板系统_第4页
第1章画图板系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaJava第1章画图板系统第1章画图板系统PAGEPAGE2PAGEPAGE7第1章画图板系统Windows操作系统的附件中有一个出色的画图工具,它也是微软的经典程序,用户通过它可以绘制一幅又一幅漂亮的图形。当然,这个画图工具不是使用Java开发的,但是也可以通过Java程序来实现这个功能。本章将讲解如何使用Java编写一个画图板程序。001.学习Java的优势002.品Java语言的发展历史003.Java的特点004.Java的平台无关性005.高级语言的运行机制006.Java的运行机制007.Java虚拟机—JVM008.安装JDK009.设置PATH环境变量010.体验第一个Java程序

1.1赢在起点光盘:视频\第1章\赢在起点.avi1.1.1赢在起点——国内每年都有成千上万的IT类应届毕业生走向社会,如果立志成为一名优秀程序员,那么从步入职场的那一刻起,就需要朝着自己的目标努力,从细节上为自己的成功做好准备。在优秀程序员的一生之中,最初的成功细节是从起点开始就做好职业规划。好的职业规划,能够为自己日后的学习和工作起到一个很好的指引作用。通常来说,程序开发人员的职业发展有如下几个选择。(1)专注于技术,成为技术专家或架构师。如果在扎实的技术基础上(高级软件工程师),又有比较强的抽象设计能力,且打算专注于技术开发,那么软件架构师是一个比较好的选择。(2)转型到技术型销售或技术支持等职位。(3)随着技术成长,从技术型管理到高级管理。如果性格更适合做管理,并且交际能力突出,则技术型管理应该是下一步的方向。上述三个发展方向十分典型,绝大多数程序员们也都在向这些方向的金字塔尖努力,并且这三个方向都是以技术为基础的。例如,对于已经工作两年以上的程序员来说,可以有几种基本的职业规划:技术专家、软件架构师、实施顾问或销售。其中程序员最主要的发展方向是技术专家,无论是C语言、C++、C#、Java、.NET还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师。架构师的地位较高,待遇也很好,对于科班出身的程序员最为适合,但这种工作职位非常有限。因为在国内目前的IT行业中,软件架构师需要具备的条件比较复杂,而且需求量也比较少,这也是我国软件行业有待成熟的因素之一。综上所述,通过对主流程序员三种发展方向的理解,读者可以根据自自身情况来规划自己的未来。1.1.2赢在起点——很多开发者,特别是一些初级开发者在进行项目开发时,总是看到功能后就立即投入到代码编写工作中,需要什么功能就编写函数去一一实现。但是在后期调试时,总是会遇到这样或那样的错误,需要返回重新修改。幸运的是,初学者接触到的都是小项目,修改的工作量也不是很大。但是如果开发的是大型项目,面对的是几千行的代码,那么返回修改将会是一件很恐怖的事情。所以在求学时期,老师们都会反复强调提前进行项目规划的重要性。一个软件项目的开发主要分为五个阶段,分别是:需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段。其中,需求分析阶段得到的结果是其他四个阶段的基础。从以往的经验来看,需求分析中的一个小的偏差,就可能导致整个项目无法达到预期的效果,或者说最终开发出来的产品不是用户所需要的。软件需求分析阶段的任务不是确定系统怎样完成工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。这一阶段所做的工作包括:深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统的接口细节,定义软件的其他有效性要求。可以将软件需求分析阶段进一步分为4个子阶段,分别是:问题识别、分析与综合、制定规格说明和评审。1.问题识别问题识别是指系统分析人员研究可行性分析报告和软件项目实施计划,确定目标系统的综合需求,并提出这些需求实现的条件以及应达到的标准。系统需求分为功能性需求和非功能性需求,具体如下。(1)功能需求:明确所开发软件的功能。(2)性能需求:明确所开发软件的技术性能指标,如数据库容量、应答响应速度等。(3)环境需求:明确所开发软件系统运行时对所处环境的要求,包括硬件方面(机型、外部设备、数据通信接口等)的要求、软件方面(操作系统、网络软件、数据库管理系统等)的要求、使用方面(使用制度、操作人员的技术水平等)的要求。(4)可靠性需求:对所开发软件在投入运行后不发生故障的概率,按实际的运行环境提出要求。对于重要的软件,或是运行失效会造成严重后果的软件,应提出较高的可靠性需求。(5)安全保密需求:明确所开发软件在安全保密方面的性能要求。(6)输出数据格式。(7)资源使用需求:明确所开发软件在运行时和开发时所需要的各种资源。(8)软件成本消耗与开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。(9)开发目标需求:预先估计系统可能达到的目标,这样易于对系统进行必要的补充和修改。除了明确以上需求外,问题识别的另一个工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。2.分析与综合分析与综合的目标是给出目标系统的详细逻辑模型。在此阶段,分析和综合工作需要反复地进行。3.制定规格说明这一阶段需要编制文档,包括软件需求规格说明书(描述需求分析的文档)、数据要求说明书以及初步的用户手册。

4.评审评审是需求分析阶段的最后一步,要求对系统功能的正确性、完整性和清晰性,以及其他需求给予评价。1.2系统概述与预览光盘:视频\第1章\系统概述与预览.avi本实例使用Java开发一个窗口应用软件,用户可使用该软件绘制简单的图画。本节将对软件的基本信息和具体功能进行简要介绍。1.2.1软件概述使用Java开发窗口程序,肯定会用到AWT和Swing的知识,它们是窗口的核心,通过使用它们的监听和事件,即可完成窗口程序。本项目的软件界面如图1-1所示。图1-1软件界面1.2.2项目预览将Java源程序复制到某个目录下,然后在Windows操作系统中选择“开始”|“运行”命令打开“运行”对话框。在“打开”文本框中输入“cmd”,单击“确定”按钮,打开cmd窗口。如图1-2所示,进入存放Java源程序的目录,运行画图板软件。打开软件界面,菜单命令如图1-3所示。

图1-2运行画图板软件图1-3菜单命令示。图1-4MicrosoftOfficeWord2003版权说明图1-5画图板软件的版权说明

在画图板软件中,画图工具是十分重要的。软件界面的左侧为画图工具箱,如图1-6所示。画图

工具箱画图

工具箱图1-6画图工具箱软件界面的底部为颜色工具箱(色块),用户可在其中选择不同的颜色,如图1-7所示。颜色

工具箱颜色

工具箱图1-7颜色工具箱如果需要更多颜色,用户可以打开如图1-8所示的对话框,在调色板中进行选择。软件界面的右侧是属性栏,可设置工具的属性,如图1-9所示。

图1-8选择更多颜色属性栏属性栏图1-9属性栏根据上述预期效果可知,本系统是一个窗体项目程序。在Java语言中,实现窗体项目的技术是AWT和Swing。在AWT组件中,由于控制组件外观的对等类(Peer)与具体平台相关,因此AWT组件只有与本机相关的外观。而通过使用Swing,程序在一个平台上运行时就能够有不同的外观供用户选择。Swing是用于开发Java应用程序用户界面的开发工具包。它以AWT为基础,使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优秀的用户界面。开发Swing界面的主要步骤是:导入Swing包、选择界面风格、设置顶层容器、设置按钮和标签、将组件添加到容器上、为组件增加边框、处理事件等。Swing是Java平台的UI,用于处理用户和计算机之间的全部交互,实际上充当了用户和计算机内部之间的中间人。Swing组件是用100%纯Java实现的轻量级(light-weight)组件,没有本地代码,不依赖操作系统的支持,是它与AWT组件的最大区别。Swing比AWT具有更强的实用性,它在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其他特性。1.3准备工作光盘:视频\第1章\准备工作.avi在具体实现本软件之前,开发人员需要做一些准备工作,本节将对此进行详细讲解。1.3.1搜集素材通过1.2.2节的项目预览可知,软件界面中有许多图标,这需要用户进行搜集。搜集的方法十分简单,用户可以打开Windows自带的画图工具进行抓图,然后进行保存,如图1-10所示。图1-10搜集素材1.3.2获得JavaAPI手册编写Java软件时经常需要查询一些方法和类,因此一定要获得JavaAPI手册,读者可以从Java的官方网站获取,这里不再赘述。如果用户可以连接到互联网,则不需要下载,可以在网上查看,如图1-11所示。

图1-11JavaAPI手册1.4具体实现光盘:视频\第1章\具体实现.avi一个大软件往往是由多个小部分组成的,本节会将要实现的软件分成若干个部分进行讲解。这样做的好处是便于读者消化理解,并加深读者的印象。1.4.1创建一个类提供了定义类、属性、方法等最基本的功能。类被认为是一种自定义的数据类型,用于描述客观世界里某一类对象的共同特征。不管是什么开发语言,只要是一门面向对象的语言,就一定有“类”这一概念,例如C++、C#和PHP等。类是指将相同属性的东西放在一起,Java的每一个源程序中至少都会有一个类。Java是一门面向对象的程序设计语言,类是面向对象的重要内容,可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称为引用型变量。也就是说,这种类是引用数据类型。回到本项目,编写软件时,首先要创建一个类,让它继承JFrame,并实现ActionListener接口;然后插入需要的包,代码如下:1.4.2菜单栏和标题栏的实现在软件界面中,标题栏和菜单栏是尤其重要的,它们好比软件的GPS,为用户提供操作导航。这部分的代码如下:jCheckBoxMenuItem[j].setAccelerator(KeyStroke.getKeyStrok1.4.3保存文档的实现保存文档的具体实现代码如下:通过上面的实现代码可知,Swing组件是面向对象的。Swing组件遵守一种被称为MVC(Model-View-Controller,即模型-视图-控制器)的设计模式,其中模型(Model)用于维护组件的各种状态,视图(View)是组件的可视化表现,控制器(Controller)用于控制组件对于各种事件做出的响应。当模型发生改变时,它会通知所有依赖它的视图,视图使用控制器指定响应机制。Swing使用UI代理来包装视图和控制器,使用模型对象来维护Swing组件的状态。例如,按钮JButton有一个维护其状态信息的模型ButtonModel对象。Swing组件的模型是自动设置的,因此一般都使用JButton,而无须关心ButtonModel对象。于是,Swing的MVC实现也被称为Model-Delegate(模型-代理)。对于一些简单的Swing组件,通常无须关心它对应的模型对象;但对于一些高级的Swing组件,如JTree、JTable等需要维护复杂的数据,这些数据就是由该组件对应的模型对象来维护的。另外,通过创建模型类的子类或通过实现适当的接口,可以为组件建立自己的模型,然后用setModel()方法把模型与组件联系起来。1.4.4界面的实现新建一个类,在其中编写界面的布局代码,然后写入一定的方法,让软件实现大部分功能,其具体实现代码如下:stroke=newBasicStroke(5,BasicStroke.CAP_ROUND,BasicStroke.JOIN

1.4.5调色板的实现新建一个类,通过这个类实现调色板功能,其具体实现代码如下:{0,255,128,192,0,0,0,0,0,0,128,255,128,255,128,255,64,128,64,128,25jPanel_color0[i].setBorder(BorderFactory.createEtchedBordejPanel_color1[i].setBorder(BorderFactory.createEtchedBorde上述代码中用到了JButton按钮控件。Swing为所有的AWT组件提供了相应的内置实现,Ganvas除外。和AWT组件相比,Swing组件有如下四个额外的功能。可以为Swing组件设置提示信息,使用setTooITipText()方法,为组件设置对用户有帮助的提示信息。很多Swing组件如按钮、标签、菜单项等,除了使用文字外,还可以使用图标修饰自己。为了允许在Swing组件中使用图标,Swing为Icon接口提供了一个实现类ImageIcon,该实现类代表一个图像图标。支持插拔式的外观风格,每个JComponent对象都有一个相应的ComponentUI对象,为它完成所有的绘画、事件处理、决定尺寸大小等工作。ComponentUI对象依赖当前使用的PLAF,使用UIManager.setLookAndFeel()方法可以改变图形界面的外观风格。支持设置边框:Swing组件可以设置一个或多个边框。Swing中提供了各式各样的边框供用户选用,用户也能建立组合边框或自己设计边框。一种空白边框可以用于增大组件,同时协助布局管理器对容器中的组件进行合理的布局。每个Swing组件都有一个对应的UI类,例如JButton组件就有一个对应的ButtonUI类来作为UI。每个Swing组件的UI代理的类名总是将该Swi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论