资源描述:
《基于Java聊天室的开发与研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《Java程序设计》项目设计报告(2011—2012学年第2学期)题目:基于JAVA的聊天室专业:计算机科学与技术班级:姓名:指导教师:成绩:计算机科学与技术系2012年月日一.项目设计总体目标本项目实训是在学生自学完Java程序设计实用教程之后安排的综合实践训练,通过项目综合实训,使学生在掌握Java语言的计基本知识的基础上,加深学生对所学知识的理解,提高学生的综合应用能力和解决实际问题的能力。二.系统总体设计1.聊天室结构图(服务器与客户端是一对多的关系):2.聊天室系统功能介绍:(1)服务器端
2、可以实时显示客户端的用户列表,当用户上线或者下线时,都会自动刷新(2)服务器端可以实时显示用户聊天室信息,管理员对于发表非法言论或无理取闹者踢出聊天室,器管理员通过公告栏发送一些公告信息,服务器管理员也可以参与聊天室的聊天(3)客户端显示所有的在线客户信息(4)客户端可以向所有在线客户发送信息(聊天室里)和显示所有客户发送的群信息(聊天室里)客户可以选择其他客户进行私聊,输入信息发送给对方,可以通过截屏发送给对方,对方可以接收截屏信息,可以选择文件发送给对方,对方可以接收文件信息,客户可以选择音乐文
3、件进行播放(5)客户不想聊时可以退出聊天室2.功能需求与程序模块的对应关系:需求模块用户登入Login用户注册Register显示在线用户FriendsTree聊天室(管理员默认加入)ServerChatRoom,ClientChatRoom私聊PrivateChat截图PritScreen发送文件、接收文件FileSend,FileReceive播放音乐MusicPlayer显示在线与不在线用户列表(服务端)UserTree数据库交互模块ServerDaoTmpl一.用户登入和用户注册:1.用户注
4、册和用户登入的流程图:用户进入登入界面输入用户名,密码提交确认信息进入系统用户注册界面正确填写注册项提交确认信息注册成功用户注册用户登入界面(登入、注册)使用到Swing技术;随着模仿QQ,实现简单的qq功能:注册、登陆、聊天功能。运行服务器端,再运行客户端出现如(图1)的登入界面,单击注册,进入如(图2)的登入界面。用户注册时,注册的信息会保留在userdata信息表中,(图2-1),实验中使用的数据库database是Access数据库,只有当输入的账号与密码和userdata信息表中的一致时才
5、能登入,否则提示账号或密码输入错误。图1登录的代码:publicvoidlogin(){try{Stringmessage=in.readUTF();StringTokenizerst=newStringTokenizer(message,"
6、");Stringstr=st.nextToken();if(str.equals("success")){this.setVisible(false);this.dispose();FriendsTreefrind=newFriendsTree(st.nex
7、tToken(),this.socket);frind.setVisible(true);}elseif(str.equals("error")){JOptionPane.showMessageDialog(this,"用户名或密码错误","错误",JOptionPane.WARNING_MESSAGE);textField.setText("");passwordField.setText("");}elseif(str.equals("resetLogin")){JOptionPane.show
8、MessageDialog(this,"该账户已经登录","提示",JOptionPane.WARNING_MESSAGE);}}catch(IOExceptione){e.printStackTrace();}}图2判断注册是否成功的代码:publicvoidregister(){try{Stringmessage=in.readUTF();StringTokenizerst=newStringTokenizer(message,"
9、");Stringstr=st.nextToken();if(s
10、tr.equals("success")){JOptionPane.showMessageDialog(this,"注册成功","成功",JOptionPane.WARNING_MESSAGE);this.dispose();}elseif(str.equals("usernameRepeat")){JOptionPane.showMessageDialog(this,"账户已经被注册","注册失败",JOptionPane.WARNING_MESSAGE);}els