基于Java聊天室的设计.doc_第1页
基于Java聊天室的设计.doc_第2页
基于Java聊天室的设计.doc_第3页
基于Java聊天室的设计.doc_第4页
基于Java聊天室的设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计项目设计报告(2011 2012学年 第 2 学期)题 目: 基于JAVA的聊天室 专 业: 计算机科学与技术 班 级: 姓 名: 指导教师: 成 绩: 计算机科学与技术系2012年月日Java程序设计项目设计报告一 项目设计总体目标本项目实训是在学生自学完Java程序设计实用教程之后安排的综合实践训练,通过项目综合实训,使学生在掌握Java语言的计基本知识的基础上,加深学生对所学知识的理解,提高学生的综合应用能力和解决实际问题的能力。二 系统总体设计1.聊天室结构图(服务器与客户端是一对多的关系):2.聊天室系统功能介绍:(1)服务器端可以实时显示客户端的用户列表,当用户上线或者下线时, 都会自动刷新(2)服务器端可以实时显示用户聊天室信息,管理员对于发表非法言论或无理取闹者踢出聊天室,器管理员通过公告栏发送一些公告信息,服务器管理员也可以参与聊天室的聊天(3)客户端显示所有的在线客户信息(4)客户端可以向所有在线客户发送信息(聊天室里)和显示所有客户发送的群信息(聊天室里)客户可以选择其他客户进行私聊,输入信息发送给对方,可以通过截屏发送给对方,对方可以接收截屏信息,可以选择文件发送给对方,对方可以接收文件信息,客户可以选择音乐文件进行播放(5)客户不想聊时可以退出聊天室2.功能需求与程序模块的对应关系:需求模块用户登入Login用户注册Register显示在线用户FriendsTree聊天室(管理员默认加入)ServerChatRoom, ClientChatRoom私聊PrivateChat截图PritScreen发送文件、接收文件FileSend,FileReceive播放音乐MusicPlayer显示在线与不在线用户列表(服务端)UserTree数据库交互模块ServerDaoTmpl三 用户登入和用户注册:1.用户注册和用户登入的流程图:用户进入登入界面输入用户名,密码提交确认信息进入系统用户注册界面正确填写注册项提交确认信息注册成功 用户注册 用户登入界面(登入、注册)使用到Swing技术;随着模仿QQ,实现简单的qq功能:注册、登陆、聊天功能。运行服务器端,再运行客户端出现如(图1)的登入界面,单击注册,进入如(图2)的登入界面。用户注册时,注册的信息会保留在userdata信息表中,(图2-1),实验中使用的数据库database是Access数据库,只有当输入的账号与密码和userdata信息表中的一致时才能登入,否则提示账号或密码输入错误。 图1登录的代码:public void login() try String message = in.readUTF();StringTokenizer st = new StringTokenizer(message, |);String str = st.nextToken();if (str.equals(success) this.setVisible(false);this.dispose();FriendsTree frind = new FriendsTree(st.nextToken(), this.socket);frind.setVisible(true); else if (str.equals(error) JOptionPane.showMessageDialog(this, 用户名或密码错误, 错误,JOptionPane.WARNING_MESSAGE);textField.setText();passwordField.setText(); else if (str.equals(resetLogin) JOptionPane.showMessageDialog(this, 该账户已经登录, 提示,JOptionPane.WARNING_MESSAGE); catch (IOException e) e.printStackTrace();图2判断注册是否成功的代码:public void register() try String message = in.readUTF();StringTokenizer st = new StringTokenizer(message, |);String str = st.nextToken();if (str.equals(success) JOptionPane.showMessageDialog(this, 注册成功, 成功,JOptionPane.WARNING_MESSAGE);this.dispose();else if (str.equals(usernameRepeat) JOptionPane.showMessageDialog(this, 账户已经被注册, 注册失败,JOptionPane.WARNING_MESSAGE);else if (str.equals(nameRepeat) JOptionPane.showMessageDialog(this, 该昵称已经被注册, 注册失败,JOptionPane.WARNING_MESSAGE);else if (str.equals(error) JOptionPane.showMessageDialog(this, 注册失败, 错误,JOptionPane.WARNING_MESSAGE); catch (IOException e) e.printStackTrace();图2-1四 聊天室和显示在线用户的设计:登入后,进入聊天室界面,(图3)有三个客户端登入了聊天室,可以显示在线的用户,在新用户上线和用户下线时要更新每个客户端在线用户列表名,且可以和在线的用户实现一对一的私聊功能。(图4)为服务器的已登入界面,服务器端实时显示在线用户,只要客户端用户点击聊天室,就能进入聊天室,在聊天室中大家可以随便聊天,管理员可以通过公告栏通知消息。图3图4五私聊:私聊流程图:用户选择其他用户输入信息确认发送信息客户端之间可以进行私聊,(图5)用户小宇宇与茂茂之间的聊天信息,两者之间还可以发送文件、接收文件(图6)、截图、选择音乐进行播放(图7)图5私聊的代码:public void mouseClicked(MouseEvent e) DefaultMutableTreeNode user_node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();if (e.getClickCount() = 2 & user_node.isLeaf() online_name = new String(user_node.toString();if (online_name.equals(在线用户) & user_node.isLeaf() JOptionPane.showMessageDialog(this, 暂无在线用户, 警告,JOptionPane.WARNING_MESSAGE); else if (chat.get(online_name) = null) pri = new PrivateChat(online_name, name, this.socket);chat.put(online_name, pri);pri.setVisible(true); else JOptionPane.showMessageDialog(this, 你已经与 + online_name+ 在聊天, 警告, JOptionPane.WARNING_MESSAGE);pri.setVisible(true);图6图7五 总 结通过两个月的项目试验,收获很大,学到了很多书本上没有的知识。也提高的解决问题的能力。小组四人分工合作,遇到问题一起讨论,通过向同学请教,上网查资料一步一步的解决。本次试验主要涉及图形用户界面的开发、布局和输入/输出流数据的控制,并且要通过Socket技术实现网络功能,整个程序采用Swing图形界面,要求熟练掌握Java图形用户界面的事件处理及部分Swing组件的使用,还要掌握数据库的应用,在实验中遇到问题最多的就是建立数据库部分,首先要设置好数据源,找到驱动,在J

温馨提示

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

评论

0/150

提交评论