1南京晓庄学院《JAVA程序设计》课程设计报告题目:Java聊天室的设计与实现姓名:戴佳伟学号:14552019班级:14软件工程3班指导教师:王峥完成时间2016.10.7成绩:信息工程学院2016年6月2目录1引言..............................................................31.1java聊天室开发背景................................................................................................31.1java聊天室开发的目的和意义.................................................................................31.2完成的主要工作.........................................................................................................42需求分析和总体设计................................................52.1需求分析与设计思路.................................................................................................52.1.1关键技术说明................................................................................................52.1.2需求分析........................................................................................................62.1.3java聊天室设计方案与思路.......................................................................62.1.4java聊天室目录结构说明...........................................................................72.2java聊天室功能结构................................................................................................83详细设计.........................................................103.1java聊天室模块实现..............................................................................................103.1.1XX模块实现...............................................................................................104java聊天室运行结果..............................................135课程设计总结.....................................................153Java聊天室的设计与实现1引言1.1Java聊天室开发背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。1.1Java聊天室开发的目的和意义目的:(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。(2)理解进程共享变量的进程通信。(3)熟悉并掌握java语言的代码编写(4)熟练使用开发工具Eclipse(5)实现聊天室的一些基本功能意义:(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受(2)用户及时获取自己想要的信息、促进交谈(3)异常处理,对于用户错误的操作使用程序会有提示消息(4)前期仅实现其基本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美化,用户登陆注册信息的采集,连接到数据库etc.(5)后期可便于网站自身的广告宣传与商品推广因所学知识和能力的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现需要进一步的深入学习才能使本课程设计日益完善。41.2完成的主要工作(1)需求分析与总体设计、详细设计、代码分析(2)实现程序所能运行的功能(3)选择Window系统,并选择该操作系统中一种进程通信的方式。(4)运用Eclipse开发工具和java语言实现该应用程序。52需求分析和总体设计2.1需求分析与设计思路2.1.1关键技术说明程序开发环境与运行环境介绍:JDK(JavaDevelopmentkit)是SUN公司提供的一套Java开发环境,通常称之为它主要包括了一些常用的JDK工具、执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等。是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一些Java工具和Java的核心类库(JavaAPI)。不论什么Java应用服务器实质都是内置了某个版本的JDK。Java语言介绍:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。Java提供了简单的类机制和动态的构架模型。对象中封装了它很好地实现了模块化和信息隐藏;种动态的解决方案。JavaJavaJavaJavaJava的类可以从其它类中Java只支持类的Java利用界面可以得到多重继承的许多优点而又没有多重继承的问题。编程工具介绍:6Eclipse:一个开放源代码的、基于Java的可扩展开发平台Eclipse语言发展:Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开放源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。2.1.1需求分析随着网络和IT技术的快速发展以及日新月异的更新换代,不断渗透到人们的日常生活。如今Internet已经成为于人们生活息息相关的一部分,也是人们获取有用信息和促进彼此之间相互交流的便捷重要的途径之一。同时,日益增多的机构和企业组织开始利用网络资源传递、发布、收集和管理信息,这对网络进行信息交互这种活动是一次很大的机遇与挑战,从而使网络的经营方式充满了活力。用户需求主要功能分析:(1)聊天交谈功能:用户获取信息的有效途径(2)当前用户显示功能:用户明确自身的登陆状态(3)文本框显示聊天功能:便于用户浏览信息(4)发送消息框显示功能:存放用户输入想要发送的信息7(5)发送按钮功能:鼠标点击——发送用户输入消息框的信息(6)用户头像显示功能:个性化用户使用2.1.2Java聊天室设计方案与思路1.设计方案:(1)把自身本机的IP地址发送给所有正在打开这个聊天室程序的人(2)其他人获取了这个IP地址后,会监听这个地址(3)如果有人发送了消息,所有的人都会接收并查看到(4)设计登录程序,使其显示登录的ip地址端口号,以及用户昵称,通过登录按钮可以调用客户端程序,实现聊天功能2..设计思路聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。1.首先通过继承JFrame类构造服务器界面。2.设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。3.设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。2.1.3Java聊天室目录结构说明对系统包结构、文件结构列表说明,如表2-1、2-2所示。表2-1包名作用8java.io提供了用于系统的输入和输出,通过数据流,序列化和文件系统。java.io.IOException捕获捕获输入输出异常java.net提供了可移植的网络I/O接口,包括TCP/IP、UDP、域名解析和Unix域socketjava.net.DatagramPacket储存接收到的数据,使用其中的方法提取传送的内容java.net.InetAddress封装IP地址java.net.UnknownHostException捕获主机IP地址无法确定异常java.awt提供了一套与本地图形界面进行交互的接口,建立和设置Java的图形用户界面java.awt.event提供接口和类来解决由awt组件引起的各种类型的事件javax.swing抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格,利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面表2-2文件名作用image存放用户头像图片2.2Java聊天室功能结构对系统实现功能进行说明,分析系统功能结构,画出系统功能结构图,如图2-1所示。总体功能:(1)实现在同一局域网的聊