资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java2实用教程课程设计报告 08软件工程2班 081403223 Java2实用教程课程设计报告课题名称:用JAVA设计的聊天软件系别: 计算机科学系 班级: 08软件工程2班 学号: 081403223 姓名: 目录一、 课程设计的目标二、 开发及运行环境三、 设计方法1. 程序功能1) 服务器功能2) 客户端功能2. 程序实现3. 类的实现4. 程序结果 1)服务器端的运行结果 2)客户端的运行结果四、 设计心得五、 参考文献 一、 课程设计的目标此次课程设计的目标是用JAVA语言实现一个功能比较完善的聊天软件,功能包含(用户注册、登录、修改昵称、更新心情、查找并添加好友、基本的文字聊天、传送文件、发送图片、窗口抖动、保存聊天记录等等 ),在设计该软件的过程中,综合运用了本学期所学的所有JAVA语言的基本知识,特别是线程、数据库、Swing、异常处理等知识。通过这次课程设计,使我们对JAVA语言以及面向对象编程有了更深的体会,我们的程序设计能力也有了很大地提高。二、 开发及运行环境硬件:PC机操作系统:Windows XP 数据库:MySQL开发工具:EclipseJDK 要求 jdk 7.0 三、 设计方法1. 程序功能(1) 服务器功能(2) 客户端功能层次功能图:程序流程:(1)登录模块流程图(2) 注册模块流程图(3)发送文件模块流程图 2. 程序实现客户端:设计的类功能FriendData保存每个好友的数据类FriendList保存好友列表类FriendMap保存好友图类PersonalData保存自己的数据类UserManager管理数据库处理相关函数的类ChatMainMap管理主界面的图类ChatWinMap管理聊天窗口的图类ClientConnServerThread客户端连接到服务器的线程类ClientThreadMap管理客户端的线程类FileClient接收文件的客户端类FileServer发送文件的服务器类LoginCheck客户端登录检验类ConnMySQL建立连接数据库类ChatLogin登录界面类ChatMain_center主界面中间部分面板类ChatMain主界面类ChatWindow_right聊天窗口右侧面板类ChatWindow聊天窗口类ConfirmRequestMessage确认消息框MessageBox自定义普通消息框Online_message上线消息框ReceiverFileTransMessage接收文件确认消息框ReceiverMessage消息管理器类ReceiverRequestMessage好友请求显示框Register注册面板TransportFile发送文件的文件选择器FileTranMes发送文件携带信息类Message发送信息类MessageType信息类型User用户ColorTools自定义颜色工具FontTools自定义字体工具ImagePanel图片面板ChatServer服务器处理类ServerConnClientThread服务器接收线程类ThreadMap管理客户端连接到服务器的线程类ServerWindow服务器窗口类服务器端:设计的类功能ChatServer服务器处理类ServerConnClientThread服务器接收线程类ThreadMap管理客户端连接到服务器的线程类ServerWindow服务器窗口类Message发送信息类MessageType信息类型User用户3. 类的实现各主要类的方法、函数的核心代码:(附:源代码)(1) 数据库处理源代码:/* * 在数据库中查询用户的资料,保存在本地的PersonalData中 * return */public void checkPersonalData(String id)PersonalData pd = PersonalData.getInstance();Connection conn = null;ResultSet rs = null;PreparedStatement pstmt = null;String sql = select * from user where userid=?;try conn = ConnMySQL.getConnection();pstmt = conn.prepareStatement(sql);pstmt.setString(1, id);rs = pstmt.executeQuery();if (rs.next() pd.setUserId(rs.getString(userId);pd.setUserName(rs.getString(username);pd.setPicNo(rs.getString(picNo);catch(SQLException e) e.printStackTrace();finally ConnMySQL.close(rs);ConnMySQL.close(pstmt);ConnMySQL.close(conn);(2) 其他数据处理关键语句:/* * 在数据库中查询用户的资料,保存在本地的PersonalData中 * return */String sql = select * from user where userid=?;/* * 在数据库中查询最新的心情 * return */String sql = select moodcontent from moodlist where moodid = (select max(moodid)from moodlist where pid=?);/* * 查找用户的所有好友,保存在本地程序中 * param id * return */String sql = select * from user where userId in (select friendid from relationlist where pid=?);/* * 修改用户的昵称 * return */String sql = update user set username=? where userId=?;/* * 修改用户的密码 * return */String sql = update user set password=? where userId=?;/* * 获取自动编号ID * param gen_name * return */String sql = select gen_number from generator where gen_name =?;/* * 更新Id维护列表,此方法给此类别的函数调用 * param gen_name * param current_id * param conn */String sql = update generator set gen_number =? where gen_name = ?;/* * 添加心情 * param userId * param mood * return */String sql = insert into moodlist values(?,?,?,?);String sql = select * from moodlist order by moodId desc limit 20;/* * 加好友 * param args */String sql = insert into relationlist values(?,?,?);String sql = insert into user values(?,?,?,?);(3) 客户端接收线程的run()函数:public void run() while(run1)try ObjectInputStream ois = new ObjectInputStream(sk.getInputStream();Message mes = (Message)ois.readObject();String messageType = mes.getMessageType();String sender = mes.getSender();String receiver = mes.getReceiver();if(messageType.equals(MessageType.CONTENT) | messageType.equals(MessageType.EXPRESSION) /System.out.println(receiver);ChatWindow cw = ChatWinMap.getChatWindow(sender);/System.out.println(来自用户+cw);if(null = cw)if(null != FriendMap.getFriendData(mes.getSender() ReceiverMessage rm = new ReceiverMessage(mes);Thread th = new Thread(rm);th.start(); else cw.showMessage(mes); else if(messageType.equals(MessageType.ON_LINE) System.out.println(更新在线好友);String all_online_ip = mes.getAll_online_id().split(,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号