兰州交通大学博文学院毕业设计(论文)
件的监听器实现方法将会调出一个GUI界面,在上面用户可以重新对用户注册资料进行修改,此界面的监听器将会调用调用服务层的UserServiceImp类中的更新用户资料方法,此方法再继续调用Dao层的UserDAOOper接口类的实现类中更新用户资料方法,此方法使用Hibernate与底层数据库进行交互,从而将更新后的数据保存进数据库中。此功能应当仅能更新修改当前登陆用户的个人资料。 4.4.9 个人聊天记录的删除功能设计
用户点击客户端界面的删除聊天记录菜单项时,此事件的监听器实现方法调用服务层的UserServiceIm类中的删除聊天记录方法,此方法再继续调用Dao层的UserDAOOper接口类的实现类中删除聊天记录方法,此方法使用Hibernate与底层数据库进行交互,从而删除数据库中的数据。用户使用此功能时,删除的数据应该只是本人的聊天记录。
21
兰州交通大学博文学院毕业设计(论文)
5 系统实现
编程实现时按照系统的详细设计要求,在选定的开发平台下,使用指定的开发工具和开发语言,遵循特定的程序设计方法所进行的代码编写工作。代码实现也称为编程实现。代码实现将依据前面的设计方案,并对设计文档中确定的每一个对象、方法、过程以及界面等进行编程。
5.1 登陆界面的实现
图 6-1 登陆界面
在登陆时,用户需要输入用户名和密码,服务器IP和端口号。系统需要对用户名和密码进行比对,验证数据库中是否有此记录。
//验证
if(UserServiceImp.isFind(userId, pwd))
{
System.out.println(\
int sPort=Integer.parseInt(serverPort); String sIp=serverIpText.getText(); try {
int option=JOptionPane.showConfirmDialog(getPanel(1),
\
22
兰州交通大学博文学院毕业设计(论文)
boolean online=true;
if(option!=JOptionPane.OK_OPTION) { }
UserServiceImp.addOnlineUser(userId, pwd, serverIp,
online=false; selectPanel(1);
sPort, online);
ChatClient
ChatRoomClient
=
new
ChatClient(userId,serverIp,serverPort);
frame.dispose();
5.2 注册界面的实现
图 6-2 注册界面
在用户注册时,要对用户书写的资料进行验证,这样可以使用户填写的资料尽可能
23
兰州交通大学博文学院毕业设计(论文)
是正确的,以减少恶意注册,减轻数据库的数据冗余。主要代码如下:
if(userNameTextNew.getText().length()<4||userNameTextNew.getText().length()>20)
{
JOptionPane.showMessageDialog(getPanel(2), \用户名不合法!\
userNameTextNew.setText(\
}
else if(pwd.length()<=3) {
userNameTextNew.grabFocus();
JOptionPane.showMessageDialog(getPanel(2), \密码不合法,密码长度不应该低于3位);
pwdTextNew1.setText(\pwdTextNew1.grabFocus();
}else if(pwd1!=pwd2) {
JOptionPane.showMessageDialog(getPanel(2), \密码不一致); pwdTextNew2.setText(\pwdTextNew2.grabFocus();
else if(!emailTextNew.getText().trim().contains(\
JOptionPane.showMessageDialog(getPanel(2), \邮箱地址不合
法);
} else {
boolean
gender;
emailTextNew.setText(\emailTextNew.grabFocus();
if(rbBtnNew1.isSelected())
gender=true;
24
兰州交通大学博文学院毕业设计(论文)
else gender=false;
int id=UserServiceImp.add(username, pwd, realname, gender,
birthday, email, city, street, province, sign);
int option=JOptionPane.showConfirmDialog(getPanel(1), \您
的帐号是:/t\是否立即登录?\提示\
5.3 服务器端模块功能实现
图 6-3 服务器端界面
作为聊天室系统的服务器,包含了客户端接入以及处理其发出请求的一系列方法,是整个聊天室的核心,客户发送的信息就是通过服务器发送到其他用户的。 5.3.1 显示在线用户功能实现
对于用户的获取,增加,删除等操作,系统主要定义了一个用户信息链表,其主要代码如下:
public class UserInfoList {
25
private Node root = null;// 用户信息链表的根
private Node pointer = null;// 用于操作链表的游标
private int count = 0;// 链表元素个数记数器(用户数记数)