基于Java聊天室的设计.docx

上传人:b****6 文档编号:6120110 上传时间:2023-01-03 格式:DOCX 页数:12 大小:717.26KB
下载 相关 举报
基于Java聊天室的设计.docx_第1页
第1页 / 共12页
基于Java聊天室的设计.docx_第2页
第2页 / 共12页
基于Java聊天室的设计.docx_第3页
第3页 / 共12页
基于Java聊天室的设计.docx_第4页
第4页 / 共12页
基于Java聊天室的设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于Java聊天室的设计.docx

《基于Java聊天室的设计.docx》由会员分享,可在线阅读,更多相关《基于Java聊天室的设计.docx(12页珍藏版)》请在冰豆网上搜索。

基于Java聊天室的设计.docx

基于Java聊天室的设计

《Java程序设计》

项目设计报告

(2011—2012学年第2学期)

题目:

基于JAVA的聊天室

专业:

计算机科学与技术

班级:

姓名:

指导教师:

成绩:

计算机科学与技术系

2012

一.项目设计总体目标

本项目实训是在学生自学完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

登录的代码:

publicvoidlogin(){

try{

Stringmessage=in.readUTF();

StringTokenizerst=newStringTokenizer(message,"|");

Stringstr=st.nextToken();

if(str.equals("success")){

this.setVisible(false);

this.dispose();

FriendsTreefrind=newFriendsTree(st.nextToken(),this.socket);

frind.setVisible(true);

}elseif(str.equals("error")){

JOptionPane.showMessageDialog(this,"用户名或密码错误","错误",JOptionPane.WARNING_MESSAGE);

textField.setText("");

passwordField.setText("");

}elseif(str.equals("resetLogin")){

JOptionPane.showMessageDialog(this,"该账户已经登录","提示",

JOptionPane.WARNING_MESSAGE);

}

}catch(IOExceptione){

e.printStackTrace();

}

}

图2

判断注册是否成功的代码:

publicvoidregister(){

try{

Stringmessage=in.readUTF();

StringTokenizerst=newStringTokenizer(message,"|");

Stringstr=st.nextToken();

if(str.equals("success")){

JOptionPane.showMessageDialog(this,"注册成功","成功",JOptionPane.WARNING_MESSAGE);

this.dispose();

}elseif(str.equals("usernameRepeat")){

JOptionPane.showMessageDialog(this,"账户已经被注册","注册失败",JOptionPane.WARNING_MESSAGE);

}elseif(str.equals("nameRepeat")){

JOptionPane.showMessageDialog(this,"该昵称已经被注册","注册失败",JOptionPane.WARNING_MESSAGE);

}elseif(str.equals("error")){

JOptionPane.showMessageDialog(this,"注册失败","错误",JOptionPane.WARNING_MESSAGE);

}

}catch(IOExceptione){

e.printStackTrace();

}

}

图2-1

四.聊天室和显示在线用户的设计:

登入后,进入聊天室界面,(图3)有三个客户端登入了聊天室,可以显示在线的用户,在新用户上线和用户下线时要更新每个客户端在线用户列表名,且可以和在线的用户实现一对一的私聊功能。

(图4)为服务器的已登入界面,服务器端实时显示在线用户,只要客户端用户点击聊天室,就能进入聊天室,在聊天室中大家可以随便聊天,管理员可以通过公告栏通知消息。

图3

图4

五.私聊:

私聊流程图:

 

客户端之间可以进行私聊,(图5)用户小宇宇与茂茂之间的聊天信息,两者之间还可以发送文件、接收文件(图6)、截图、选择音乐进行播放(图7)

图5

私聊的代码:

publicvoidmouseClicked(MouseEvente){

DefaultMutableTreeNodeuser_node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();

if(e.getClickCount()==2&&user_node.isLeaf()){

online_name=newString(user_node.toString());

if(online_name.equals("在线用户")&&user_node.isLeaf()){

JOptionPane.showMessageDialog(this,"暂无在线用户","警告",JOptionPane.WARNING_MESSAGE);

}elseif(chat.get(online_name)==null){

pri=newPrivateChat(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组件的使用,还要掌握数据库的应用,在实验中遇到问题最多的就是建立数据库部分,首先要设置好数据源,找到驱动,在Java中才能与数据库进行连接。

一开始在acceaa数据中的userdata信息表中没有注意日期的格式,导致在注册的时候一直无法成功,一遍一遍的检查,才发现了这个问题。

只有通过自己的实践,才能更好的将理论知识运用,才会发现自己不足之处和需要提高的知识,也提高了解决问题的能力,这对我们以后的学习和工作有很大的帮助。

指导教师

评语

 

设计

成绩

指导教师签字

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1