《基于JAVA的毕业设计论文范文免费预览.doc》由会员分享,可在线阅读,更多相关《基于JAVA的毕业设计论文范文免费预览.doc(48页珍藏版)》请在三一办公上搜索。
1、基于JAVA的无线人员定位管理软件设计摘 要近年来,随着监狱在押人员的不断上升,仅依靠传统的视频监控或门禁报警系统已显得独木难支,不能做到全方位、多功能的监控。因此 ,提高看守所安防管理水平,建立综合高效的信息监管平台已成必然趋势。本课题研究的主要内容是设计一个无线人员定位管理软件,此软件具有对看守所在押人员的基本信息的增加、查询、删除、修改,人员路径再现以及用户帐户管理等功能。本软件以流行的Java语言为开发语言,以开源的Eclipse为开发开台,以免费的MySQL作为后台开发数据库,并利用引路蜂地图开发包实现人员定位功能的一个跨平台的人员管理系统。本文首先对Java程序编程的基础知识,JD
2、BC数据库技术,图形界面开发技术,引路蜂地图开发包等软件开发的相关技术做出了简单的介绍。在此基础之上,介绍了本课题的创新点,给出了软件的总体设计方案和各功能模块的实现。关键词:无线定位;Java;引路蜂;JDBC;Eclipse;跨平台AbstractIn recent years, with the number of prisoners on the rise, we can not only relay on the traditional video surveillance or access control alarm system for they cannot do the a
3、ll-round, multi-function monitoring. Therefore, it has become an inevitable trend to establish a comprehensive and efficient monitoring platform to improve the detention center security management level.The main content of this research project is to design a wireless positioning management software
4、. The software has the function of add, query, delete, modify and export the basic information held in detention center. Whats more, it also has user account management function. The cross-platform personnel management system is a software that uses Java as a develop language, the open source Eclips
5、e as Integrated Development Environment, the free MySQL as development database, and the Guidebee Map Development Kit for positioning .First I make a brief introduction to Java programming, the JDBC database technology, Graphical User Interface programing, and Guidebee Map development technology. On
6、 this basis, I give the overall design of the software and the design of each functional module.Key words: wireless positing; Java; Guidebee Map; JDBC; Eclipse; cross-platform目 录摘 要Abstract第1章 绪论11.1 课题意义及目的11.2 课题主要研究的内容1第2章 软件开发相关技术介绍32.1 Java程序编程基础32.1.1 Java的起源及其发展32.1.2 Java程序运行原理32.2 Eclipse开发
7、平台52.3数据库技术62.2.1 SQL语言概述62.2.2 JDBC模型72.2.3 JDBC的工作方式82.2.4 MySQL数据库102.4 图形界面开发技术102.4.1 Swing组件类的层次112.4.2 Swing事件处理机制132.4.3 Swing中的布局管理132.4.4 设置应用程序外观162.5 引路蜂电子地图开发技术172.5.1引路蜂地图API概述172.5.2地图开发包类的定义182.5.3地图对象类的层次关系202.5.4地图图片读取类层次关系212.5.5图形子系统222.5.6地图配置24第3章 系统总体设计253.1系统功能描述253.2软件总体设计26
8、3.2.1 软件总体结构图263.2.2系统开发原则263.3系统的通信协议27第4章 软件各模块的实现284.1用户登录的设计284.2在押人员管理模块设计284.2.1查询在押人员信息模块294.2.2新增在押人员信息模块304.3.3修改在押人员基本信息模块304.3.4删除在押人员信息模块314.3.5导出在押人员信息模块324.2.6显示在押人员路径模块324.3用户管理模块设计334.3.1增加帐户模块344.3.2删除帐户模块344.3.3修改帐户密码模块354.4数据库中表的设计354.5本章小结38第5章 项目创新点395.1 软件的平台无关性395.2 基于桌面系统的Jav
9、a地图应用395.3 采用最新的地图显示技术39第6章 结束语40参考文献41致 谢42第1章 绪论1.1 课题意义及目的近年来,虽然监控技术高速发展,但看守所中在押人员的狡诈意识也逐渐增强,犯罪种类有增无减,常常出现聚众斗殴、自残、逃跑等现象,因此,提高看守所安防管理水平,建立综合高效的信息监管平台已成必然趋势1。目前,已有的安防系统大都只能实现对定点人群的定位,无法对移动人群进行定位,因此对于出逃在外的在押人员,监管人员无法判断其出逃方向,更无法获得其出逃路线,不利于高效地追捕。因此,设计一套无线人员定位管理系统,可以解决移动人群的追踪定位问题,具有广泛的社会需求和广阔的市场前景。在信息技
10、术不断发展的今天,利用无线人员定位管理系统,能够有效地监控高危在押人员,防止在押人员的出逃,追查及跟进暴力事件的发生,最大限度的保障监管人员和在押人员的人身安全,并促进监狱安全技术防范系统向集成化、网络化、智能化的进一步发展,具有一定的创新意义及实用价值。1.2 课题主要研究的内容本课题以 Windows XP为开发平台,以Java为开发语言,以Eclipse作为集成开发工具,MySQL作为后台开发数据库。本文从上位机软件出发,利用面向对象、数据库、Swing、多线程等技术,采用引路蜂的J2SE地图开发包,设计并实现无线人员定位管理系统软件。此软件具有看守所在押人员的基本信息阅览、新增、查询、
11、删除、修改,人员路径再现以及用户帐户管理的功能。通过这个软件查看每个在押人员的基本信息,并进行修改,并且可以结合引路蜂地图,查看在押人员的行进路线。为了提升系统的安全性,所有用户只有在登录后才可以使用本系统。同时,为了方便不同的人员对在押人员进行管理,软件中设置了帐户管理的功能。本论文的主要研究内容如下:(l)学习和掌握Java编程语言、Eclipse开发平台、JDBC数据库技术、Swing应用程序开发包和引路蜂地图开发包的使用。(2)分析整个无线定位管理软件系统的总体框架及其功能特点。(3)根据用户需求设计出无线定位管理软件系统,给管理人员提供可视化界面,实现对看守所在押人员的基本信息的阅览
12、、新增、查询、删除、修改,人员路径再现等功能。(4)对软件进行现场测试,以验证设计的可行性、准确性和优越性。第2章 软件开发相关技术介绍2.1 Java程序编程基础2.1.1 Java的起源及其发展Java是Sun公司开发出来的一套编程语言,最早来源于一个叫Green的项目。这个项目原来的目的是为家用电子消费产品开发一个分布式的代码系统,这样就可以通过网络对家用电器进行控制。开始Sun公司的工程师准备采用C+2,但由于C+过于复杂,安全性差,最后决定基于C+开发一种新语言(Oak语言)。Oak是一种用于网络 ,精巧而安全的语言,Sun公司曾以此投标过一个交互式电视项目,结果被SGI打败。恰巧此
13、时Mark Andreessen开发的Mosaic和Netscape启发了Oak的成员,Sun的工程师们用Java编制了HotJava浏览器,触发了Sun进军Internet3。Java语言发展到至今经历了一系列的过程,Java在1995年5月23日推出了JDK 1.0版本,此版本标志着Java正式进军Internet的开始。在1998年,Sun公司推出了JDK 1.2开发包,该版本加入了大量的轻量级组件,从此以后Java正式被命名为JDK 2。在此之后,Sun公司也陆续发布了一系列的Java开发包版本,目前最新版本的JDK为JDK 74。2.1.2 Java程序运行原理Java中有两类应用程
14、序,一类是有自己独立运行入口点的Java应用程序,另一类是嵌入在Web页面中由Web浏览器来控制运行的Java小程序(Applet5)。在运行时,它们都需要Java运行系统的支持,对于Java运行程序,Java运行系统一般是指Java解析器;而对于Applet, Java运行系统一般是指运行Applet的与Java相兼容的Web浏览器,并且其中包含了支持Applet运行的环境。Java运行系统的功能是对字节码进行解析和执行,其工作过程可以分为以下三步。(1)由类装载器完成字节码的装载。在装载过程中,程序运行时所需要的所有代码都被装载。完成后,节节码中便保留了地址的符号引用信息,运行系统通过建立
15、的地址符号引用信息与内存之间的对照来确定程序的内存分配。(2)由字节码检验器对字节码进行安全性检查。这种检查可以排除字节码中可能存在的违反访问权限,不规范数据类型以及非法调用等问题。(3)字节码的翻译和执行。Java字节码的运行可能有两种方式,一种是通过代码生成器,先将字节码翻译成适用于本系统的机器码,然后再送到硬件去执行,这是一种编译性工作方式。另一种是通过解析器将字节码翻译成机器码,然后由即时运行部件将机器码送到硬件去执行,这是一种解析性工作方式。Java运行系统一般采用第二种工作方式,只有对那些运行速度要求较高,才采用编译性工作方式,这时就需要使用特定的代码生成器来完成编译,从而保证Ja
16、va程序代码的高性能6。2.2 Eclipse开发平台Eclipse是一个开放源代码的,基于Java的可扩展开发平台,它通过插件组件构成开发环境。Eclipse附带了一个标准的插件集,其中最著名的插件当属Java开发工具(Java Development Tools,JDT)7,其界面的主界面如图2-1所示。最初主要用来Java语言开发,但是目前亦有人通过外挂程式使其作为其他计算机语言比如C+和Python的开发工具。Eclipse本身只是一个框架平台,但是众多外挂程式的支持使得Eclipse拥有其他功能相对固定的IDE软体很难具有的灵活性。许多软体开发商以Eclipse为框架开发自己的IDE
17、。Eclipse最初由IBM公司开发,2001年11月贡献给开源社区,现在它由非营利软体供应商联盟Eclipse基金会(Eclipse Foundation)管理8。 图2-1 Eclipse程序主界面在用最新版本的Eclipse开发桌面应用程序时,既可以直接编写代码来设计应用程序界面,也可以使用Eclipse的Visual Swing Designer来进行界面的可视化设计。Visual Swing Designer是一个Swing界面设计工具插件 ,代码的生成和解析不需要依赖于form文件,而且生成的代码可读性很好,支持代码跟界面实时的切换。它还支持表格和树的可视化设计,程序员在设计表格和
18、树模型时,不需要编写复杂的代码,直接从采用界面操作便可以生成表格和树的数据模型代码。在一般情况下,可以通过Visual Swing Designer来设计程序的基本界面,再通过用户定制一些代码往往能更快地进行应用程序的快速开发。Eclipse的使用大大减少了程序员开发程序的工作量,尤其是在程序界面设计方面。同时拥有对代码错误信息的实时提示功能,当程序代码出现错误时,Eclipse会在代码左边显示出错误提示,点击它能够帮助程序员自动更正错误。2.3数据库技术程序设计中离不开数据库的支持,每个程序的设计都是使用数据库保存数据。 JDBC是Java程序连接和存取数据库的应用程序接口,是Java核心A
19、PI的一部分。JDBC使程序员能够利用当前最新的数据库特征,如同时连接多个数据库等。JDBC支持静态和动态的SQL语句(在运行时组建查询和更新语句)。JDBC最大的特点是无论后台是何种数据库,对于Java程序员而言,它的工作方式完全相同。JDBC为许多不同的数据库连接模块的前端提供了统一的接口,这样就不用为连接不同的数据库而烦恼了。当需要为程序修改数据库时,程序基本上只要修改在代码中修改数据库的驱动,URL,用户名,密码,其他的地方基本上是没有发生变化的。2.3.1 SQL语言概述SQL(Structure Query Language,结构化查询语言),是一个功能强大的数据库语言。SQL语言
20、的主要功能就是同各种数据库建立联系,进行沟通9。20世纪80年代初,美国国家标准局(ANSI)开始着手定制SQL标准,最早的ANSI标准于1986年完成,叫做SQL-86。标准的出台使SQL作为标准关系数据库语言的地位得到了加强。SQL标准目前已几经修改,更趋完善。正是由于SQL语言的标准化,所以大多数关系型数据库都支持SQL语言,它已经发展成为多种平台进行交互操作的底层会话语言。SQL语句主要可以划分为以下3个类别。(1)DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表列、索引等数据库对象的定义。常用的语句关键字主要包括c
21、reate、drop等。(2)DML(Date Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。(3)DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。2.3.2 JDBC模型JDBC由 编 程 语 言 编 写 的 类 及 接 口 组 成,同时它也为程序开发人员提供了一组用于实现对数据库访问的API,并支持SQL语言。
22、利用JDBC可以将Java代码连接到Oracle,SQL Server,MySQL等数据库,从而实现对数据库中数据的相关操作10。JDBC 为数据库应用开发人员和数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯 Java 语言编写完整的数据库应用程序 用 JDBC 写的程序能够自动地将 SQL 语句传送给相应的数据库管理系统。不但如此,使用 Java 编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用程序11。JDBC由两层组成,上面一层是JDBC API,下面一层是JDBC驱动程序API。JDBC API负责与JDBC管理器驱动程序A
23、PI进行通信,将各个不同的SQL语句发送给它。驱动程序管理器与实际连接到数据库的第三方驱动程序进行通信,并且返回查询的信息,或者执行由查询规定的操作12。它主要由以下四个部分组成。(l)Java程序Java程序包括应用程序,Applet和Servlet等,这些类型的程序都可以利用JDBC方法完成对数据库的访问和操作。完成的主要任务有:请求与数据库建立连接、向数据库发送SQL请求,为结果集定义存储应用和数据类型、查询结果、处理错误、递交及关闭等操作。(2)JDBC驱动程序管理器JDBC驱动管理器能够动态地管理和维护数据库查询所需要的所有厂商或第三方所提供的驱动程序对象,实现Java任务与特定驱动
24、程序的连接,从而体现JDBC与驱动无关这一特点。它完成的任务有为:为特定的数据库选择驱动程序,处理JDBC初始化调用,为每个驱动程序提供JDBC功能的入口,为JDBC调用执行参数。(3)驱动程序驱动程序一般由数据库厂商或者第三方提供,它由JDBC方法调用,向特定的数据库发送SQL请求,并为Java程序取得结果。驱动程序可以完成下列任务:建立与数据库的连接,向数据库发送请求等。(4)数据库数据库是指Java程序所需要的数据库,如MySQL,SQL Server,Oracle。在本课题中,使用了MySQL数据库。2.3.3 JDBC的工作方式JDBC功能强大非常强大,但使用简单。无论连接何种数据库
25、,只要做好下列步骤即可:(1)与数据源建立连接 通过DriverManager类建立与数据库的连接,这个连接将作为一个数据操作的起点。例如,在本程序中,使用以下语句与MySQL数据库建立了连接。protected static String dbClassName = org.gjt.mm.mysql.Driver;/ 数据库连接驱动类protected static String dbUrl = jdbc:mysql:/localhost:3306/gps;/ 数据库连接URLprotected static String dbUser = root; / 数据库用户名protected s
26、tatic String dbPwd = admin; / 数据库密码private static Connection conn = null; / 数据库连接对象Class.forName(dbClassName); / 加载驱动类conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);/ 与数据库建立一个连接(2)向数据库发送SQL命令通过Statement或者PreparedStatement类发送SQL命令。在命令发送后,调用类中的excute方法来执行结果。例如,下列语句将会执行sql语句指定的操作。Statement st
27、mt=conn. createStatement (sql);/通过SQL语句创建Statementstmt.execte();/执行sql语句指定的操作(3)处理数据源返回的结果数据库处理了SQL命令后,将返回处理结果。对于查询将会返回一个ResultSet结果集,在Java程序中遍历这个结果集就可以执行想要的操作了。例如,下列语句则会从数据库的tb_operator表中返回具有指定用户名和密码的查询结果,并存放在ResultSet中。String sql = select * from tb_operator where name= + name+ and password= + pass
28、word + ;/查询字符串ResultSet rs = Dao.executeQuery(sql);/ 执行查询2.3.4 MySQL数据库近几年来,开源数据库逐渐流行起来。由于具有免费使用、配置简单、稳定性能好、性能优良等优点,开源数据库在中低端应用中占据了很大的市场人人份额,而MySQL正是开源数据库的杰出代表。MySQL13-14数据库隶属于MySQL AB公司,总部位于瑞典。MySQL几乎支持所有的操作系统,并且支持很大的表,这些特性使得MySQL的发展非常迅猛,目前已经广泛应用在各个行业中。MySQL数据库目前分为社区版(Community Server)和企业版(Enterpri
29、se),它们最重要的区别在于:社区版是自由下载而且完全免费的,但是官方不提供任何技术支持,适用于大多数普通用户;企业版是收费的,不能在线下载,相应地,它提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求比较高的企业客户。在本程序中,使用了MySQL数据库的社区版来对程序中相关的人员信息进行维护。2.4 图形界面开发技术Swing15是一个用于开发Java图形界面应用程序的开发工具包,它是以抽象窗口工具包(AWT)16为基础,使跨平台应用程序可以使用任何的外观风格。Swing开发人员通过使用少量的代码,就可以利用Swing包中丰富、灵活的功能和模块化组件类来开发令人满意的用户
30、界面。Swing是Sun公司推出的第二代图形用户接口工具包,通过Swing可以开发出功能强大,界面优美的客户应用程序。Swing中不但提供了许多功能完善的控件,而且还有良好的扩展能力。Swing组件实现不包括任何与平台相关的代码。Swing组件是纯Java语言编写,没有本地代码,是一种轻量级组件17。目前利用 Swing 开发的可视化桌面程序已经非常成熟,并且很多工具已经在业界产生了巨大影响。例如 IBM Lotus notes 办公套件, Eclipse和NetBeans 开发工具。其中这 Eclipse 和 NetBeans 是用来开发 Java 应用程序的,本来也是使用 Swing 开发
31、出来的一套工具,在全世界普及。近年来,NetBeans的发展,已经在程序员中产生了良好的口碑,特别是它的可视化桌面程序设计器,拖拽方式设计桌面窗口,以及各种各样良好的辅助设计功能,让之前可视化拖拽设计工具 Delphi 的设计人员也大大赞赏。特别是 Swing 设计的桌面程序,在不同平台几乎不需要做什么修改就可以直接使用,让目前的软件厂商找到了非常好的跨平台编程工具18。2.4.1 Swing组件类的层次Swing中的组件的层次结构如图2-2所示,Swing的组件可以分为两种类型,一种是JComponent类,另一种是Window类。其中Window组件类主要包括了一些可以独立显示的组件,而J
32、Component组件类主要包括了一些不能独立显示的组件。什么是可以独立显示的组件呢?独立显示的组件是指当运行一个程序时,这个组件无须托付在其他组件上就可以显示,即它可以直接显示出来,例如JFrame类,它可以独立显示,无须任何其他的组件。而不可独立显示的组件则必须依靠可独立显示的组件来显示,例如文本框组件、按钮组件、必须依托在JFrame等上面才能显示出来。ComponentContainerJComponentWindowJPanelJTableJTreeJTextFieldJButtonJTextFieldJFrameJDialog图2-2 Swing组件类的层次结构图以上的示意图只是从
33、显示效果上划分,其实从其功能上划分,在javax.swing包中Swing组件共有三种类型:顶层组件、中间组件、基本组件。顶层组件又被称为顶层容器,而中间组件又分为中间容器和特殊中间组件,如图2-3所示。Swing组件顶层组件类中间组件类基本组件类中间容器类特殊中间容器类图2-3 Swing 组件从功能上划分(1)顶层组件类:所谓的顶层组件类是指可以独立显示的组件。主要有JFrame,JApplet,JDialog,JWindow等。(2)中间容器类:所谓的中间容器类是指那些可以充当载体,但也是不可以独立显示的组件。通俗地说,就是一些基本控件可以放在其中,但是它不能独立显示,必须依托在顶层容器
34、上才能显示。常用的中间容器有JPanel,JScrollPane,JSplitPane,JToolBar.(3)特殊中间组件类:在GUI上起特殊作用的中间层,如JInternalFrame。(4)基本组件类:基本组件是指那些只能依托在中间窗口上才能被显示的组件,如JButton,JComboBox,JMenu等。2.4.2 Swing事件处理机制图形用户界面程序都需要对环境中发生的各种事件(包括鼠标的单击、值的改变、焦点的获取或者丢失、键盘输入等 )进行监控并根据事件的类型进行相应的处理。Swing中采用了委托事件模型,也叫授权事件模型来处理系统发生的各类事件19。在授权事件模型中,主要包含3
35、个对象。(1)事件:发生在用户界面上的用户交互行为所产生的一种效果。(2)事件源:产生事件的对象。(3)事件监听器:接收事件并对其进行处理的对象。组件作为事件源可以触发事件,一个事件源可以注册一个或多个事件监听器。当特定事件发生时,事件被委托到特定的事件监听器进行处理。具体来说,首先通过组件的AddListener方法注册事件监听器,一个组件可以注册多个事件监听器。 监听器监听特定的事件,如果组件触发了相应类型的事件,此事件被传送给已经注册的监听器,事件监听器负责处理事件。委托事件模型具有如下优点:(1)事件对象只传给注册的监听器,不会被其他组件或上层窗口捕获和处理。(2)可以实现过滤的功能,
36、只监听和处理感兴趣的事件。(3)实现了将事件源和事件监听器分开处理的功能。2.4.3 Swing中的布局管理Java中的布局管理管理功能,没有Visual Basic, Visual C+等可视化软件所带的表单设计器,可以在画板上直接将组件按照程序员的意愿进行排列。在Java中只能通过编写代码来规范每个控件在顶层窗口中的位置。不同的代码代表着不同的代码布局方式,不同的布局方式代表着不同的布局格调。为了将添加到容器中的Swing组件和其他容器进行布局,Swing采用了两种布局方式:无布局管理器布局和基于布局管理器的布局。其中无布局管理器的布局是通过指定Swing组件在窗体上的绝对位置来实现的。基
37、于布局管理器的布局20是Swing为了实现跨平台的动态布局效果而提出的布局方式。在这种方式下,需要调用容器类(JFrame,JDialog或者JPanel等)的setLayout方法设置布局管理器,常用的布局管理器有FlowLayout,BorderLayout,GridLayout等多种方式。不同的布局管理器使用不同的算法和策略来决定组件在窗口内的布局。设置好布局管理器后,窗口内的所有组件的布局就由布局管理器来负责,包括组件的排列顺序,组件的大小,位置,当窗口移动或调整组件大小后该如何变化等。l 无布局管理器的布局Swing中提供了setLocation(),setSize(),setBou
38、nds()等布局方法,但Swing中存在一个默认的布局管理器,因此这些方法都会失效。如果需要设置组件的大小或位置,则应取消布局管理器,方法为调用容器的setLayout()方法,并将布局管理器设置为null。采用无布局管理对组件进行布局时,相对于基于布局管理器的布局方式在对组件的大小和位置的控制上较为灵活,但这种布局方法会导致平台相关,在不同的平台上可能产生不同的显示效果。如果想要使应用程序在不同的平台上运行,则需要采用基于布局管理器的布局方式。l FlowLayout容器采用FlowLayout布局其组件的放置规律是从左到右,从上到下进行设置,如果容器足够宽,第一个组件先添加到容器中第一行的
39、最左边,后续的组件依次添加到上一个组件的右边,如果当前行已经放置不下该组件,刚放到下一行的最左边。当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化。l BorderLayoutBorderLayout布局管理器把容器分为五个区域:North,South,East,West,Center。每个区域只能放置一个组件。如果使用了BorderLayout布局,那么当容器的大小发生变化时,其变化规律为:组件的相对位置不变,大小发生变化。例如容器变高了,则North、South区域不变,West、Center,East区域变高。如果窗
40、口变宽了,则West和East不变,North、Center和South区域变宽。不一定所有的区域都有组件,如果四周的区域没有组件,则用Center去补充。l GridLayoutGridLayout 将组件按网格型排列,每个成员尽可能地占据网格的空间,每个网格也同样尽可能地占据空间,从而各个成员按一定的大小比例放置。如果你改变大小, GridLayout将相应地改变每个网格的大小,以使各个网格尽可能地大,占据Container容器全部的空间。GridLayout基本布局策略是把容器的空间划分成若干行乘以若干列的网格区域,组件就位于这些划分出来的小区域中,所有的区域大小一样。组件按从左到右,从
41、上到下的方法加入。使用构造函数GridLayout(int rows, int cols)可以创建具有指定行数和列数的网格布局。构造函数里的行数和列数能够有一个为零,但是不能都为零。当容器里增加控件时候,容器内将向0的那个方向增长。例如,如果是如下语句:GridLayout layout= new GridLayout(0,1);在增加控件时,会保持一个列的情况下,不断把行数增长。l 面板及容器的嵌套由于任何一种布局管理器的能力都很有限,所以在设计复杂布局时,通常采用容器嵌套的方式,即把组件添加到一个中间容器中,再把中间容器作为组件添加到另外一个容器中,从而实现复杂的布局。为实现这个功能,经常
42、使用JPanel类,该类是JCompoent类的子类。JPanel类是一个通用的容器,既可以把它放入其他容器中,也可以把它放入其他容器和组件,因此这种窗口经常在构造复杂布局中作为中间容器,但它不能单独显示,需要放到JFrame等顶层容器中。使用面板容器作为中间容器构建图形用户界面的一般思想是:先将组件添加到面板上,然后将面板作为一个组件再添加到顶层容器中。如果要作用面板作为中间容器,首先需要创建面板对象,JPanel的构造方法如下:Public JPanel(LayoutManager layout):创建一个面板对象,使用指定的布局管理器对旬(layout)设置面板的布局。Public JP
43、anel();使用默认的布局管理器创建一个面板对象,面板的默认布局管理器是FlowLayout。也可以在创建面板对象后重新设置它的布局,方法是使用面板对象的setLayout()方法。2.4.4 设置应用程序外观Java程序是跨平台的,为了使Java图形界面应用程序在不同系统下显示的外观完全一致,Java应用程序可以指定界面显示外观(Look and Feel)。图形界面程序外观包括Java外观(Metal风格外观),Windows外观,CDE/Motif, Mac OS外观等。在程序中指定一种外观很方便,只要调用UIManager类的setFeelAndLook()方法即可,该方法的参数是L
44、ookAndFeel类的实例或类名。例如:如果用当前平台的外观则可使用:UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();UIManager类的getSystemLookAndFeelClassName()返回当前系统使用的外观类名。将该段代码放入应用程序main()方法的开头就可以设置应用程序的外观。如果要指定跨平台的外面,即Java外观,可以使用下面的代码:UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName();设置
45、应用程序外观,还可以在setLookAndFeel()方法的参数中指定外观类的名字,例如(1)使用Java外观UIManager.setLookAndFeel(“javax.swing.plaf.metal.MetalLookAndFeel”);(2)使用Windows外观UIManager.setLookAndFeel(“com.sun.java.swing.plaf.windows.WindowsLookAndFeel”);(3)使用CDE/Motif外观UIManager.setLookAndFeel(“com.sun.java.swing.plaf.motif.MotifLookAnd
46、Feel”);(4)使用Mac OS外观,但只能用在Mac OS平台UIManager.setLookAndFeel(“javax.swing.plaf.mac.MacLookAndFeel”);2.5 引路蜂电子地图开发技术2.5.1引路蜂地图API概述目前流行的电子地图应用中,主要基于Google地图、百度地图、高德地图等进行开发的。如果是基于Google Earth的应用程序,可以使用KML语言21来进行开发。如果是用来进行网站开发,一般采用Google Map API21来进行开发。Google Map API 是一种通过 JavaScript21 将 Google 地图嵌入到您的网页
47、的 API。该 API 提供了大量实用工具用以处理地图,并通过各种服务向地图添加内容,从而在网站上创建功能全面的地图应用程序。百度地图和高德地图提供的API提供的都是基于浏览器的网页地图,采用JavaScript语言进行开发。对于标准的Java语言它们没有提供相应的API。引路蜂地图开发包24提供了几乎对所有软件平台(桌面和移动平台)的支持,采用统一的接口使用包括Google地图,Bing地图在内的多达20多种地图类型,并在同一地图中支持矢量地图,离线地图的显示。图2-4显示了引路蜂地图开发包所支持的开发平台,软件包以三个不同的开发包提供对各个平台的支持。图2-4 引路蜂地图开发包支持平台2.5.2地图开发包类的定义图2-5为引路蜂地图开发包中关键的几个类的定义及其关系图图2-5开发包关键类及其关系图AbstractGraphicsFactory,DigitalMapService,MapTileAbstractReader分别用于对不同平台用户界面,不同地图服务,不同地图图片的支持。引路蜂地图开发包在对地图图片和地图服务进行了抽象,其中地图图片主要用于显示地图图片,地图图片可以来源于三个方
链接地址:https://www.31ppt.com/p-4022344.html