📄 client.java
字号:
{
mainUI.setFriend(friendTree.chushi());
}
friendTree.addonlinefriend(objMsg.getDestID());// 将此ID加在在线的好友列表中
mainUI.getjFrame();
mainUI.getjFrame().setVisible(true);
aplay.soundPlay("/music/shangxian.wav");
mainUI.getjFrame().setTitle(String.valueOf(constuser.getID()));
objMsg.setSourceID(userInfo.getID());
// 再看看有人给我留言没有
objMsg.setOrder(setting.Command.checkfriendliuyan);
objMsg.setObjMessage(userInfo);
send(objMsg);
// 若好友在线我还需则把我上线的消息发给她
// 再向服务器发出信息 以便把我加入对方的好友列表中
}
/**
* 收到好友不在线信令
*/
// 收到好友不在线的信令,不需要再更新好友的好友列表
if (order.equals(setting.Command.friendisoffline))
{
if (friendTree.quitline == null)
{
mainUI.setFriend(friendTree.chushi());
}
friendTree.addnotonlinefriend(objMsg.getDestID());
mainUI.getjFrame();
mainUI.getjFrame().setVisible(true);
mainUI.getjFrame().setTitle(String.valueOf(constuser.getID()));
objMsg.setSourceID(userInfo.getID());
objMsg.setOrder(setting.Command.checkfriendliuyan);
objMsg.setObjMessage(userInfo);
send(objMsg);
}
/**
* 收到登录重复信令
*/
if (order.equals(setting.Command.loginreapt))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(null, " 用户" + objMsg.getDestID()
+ "已经登录", "警告", 1);
}
/**
* 收到更新好友列表信令
*/
if (order.equals(setting.Command.updatemetofriendaccept))
{
// 收到来自别的客户的请求 把客户更新到我的好友列表
if (userInfo.getID() == objMsg.getDestID())
{
aplay.soundPlay("/music/shangxian.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), " 用户"
+ objMsg.getSourceID() + "上线", " 提示", 1);
friendTree.shangxian((User) objMsg.getObjMessage(), objMsg
.getSourceID());
mainUI.getjFrame();
mainUI.getjFrame().setTitle(String.valueOf(constuser.getID()));
}
}
/**
* 收到登录失败信令
*/
if (order.equals(setting.Command.loginfail))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(loginui.getJFrame(),
"用户名或密码错误,请重新输入", "警告", 1);
loginui.PasswordField.setText("");
}
}
/**
* 添加好友更新好友列表相关信令接收
*/
public void addFriendOrderRecieve(Embody objMsg)
{
String order = objMsg.getOrder();
if (order.equals(setting.Command.addfriendqueren))
{
int i = JOptionPane.showConfirmDialog(mainUI.getjFrame(), "是否同意用户"
+ objMsg.getSourceID() + "加你为好友", "提示",
JOptionPane.YES_NO_OPTION);
if (i == 0)
{
objMsg.setOrder(setting.Command.addfriendtongyi);
send(objMsg);
} else
{
objMsg.setOrder(setting.Command.addfriendbutongyi);
send(objMsg);
}
}
if (order.equals(setting.Command.addfriendtongyi))//
{
userInfo = (User) (objMsg.getObjMessage());
friendTree.addonlinefriend(objMsg.getFriendID());
mainUI.getjFrame();
mainUI.getjFrame().setVisible(true);// 更新好友信息后 应该提示对方是否要加我
JOptionPane.showMessageDialog(mainUI.getjFrame(), " 添加好友成功",
"友情提示", 1);
objMsg.setObjMessage(userInfo);// 把自己对象传过去
objMsg.setOrder(setting.Command.addfriendagin);
send(objMsg);
}
if (order.equals(setting.Command.addfriendbutongyi))
{
JOptionPane.showMessageDialog(mainUI.getjFrame(), "对方不同意",
"警告", 1);
}
if (order.equals(setting.Command.addfriendaginqueren))
{
int i = JOptionPane.showConfirmDialog(mainUI.getjFrame(), "用户"
+ objMsg.getSourceID() + "已经加你为好友,你是否要加"
+ objMsg.getSourceID() + "为好友", "提示",
JOptionPane.YES_NO_OPTION);
if (i == 0)
{
objMsg.setOrder(setting.Command.addfriendagintongyi);
send(objMsg);
}
}
}
/**
* 添加好友失败的错误信令及更新好友列表信令
*/
public void addfriendfailInfoOder(Embody objMsg)
{
String order = objMsg.getOrder();
if (order.equals(setting.Command.addfriendisnotexist))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), " 没有这个号码", "警告",
1);
}
if (order.equals(setting.Command.addfriendisnotonline))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), " 该用户不在线", "警告",
1);
}
if (order.equals(setting.Command.addfriendreapt))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), " 此用户已经是你的好友",
"警告", 1);
}
if (order.equals(setting.Command.addfriendaginflush))// 加好友的最后一次通信
{
userInfo = (User) (objMsg.getObjMessage());
mainUI.getjFrame();
friendTree.addonlinefriend(objMsg.getFriendID());
mainUI.getjFrame();
mainUI.getjFrame().setVisible(true);
JOptionPane.showMessageDialog(mainUI.getjFrame(), "好友列表更新成功", "提示",1);
}
}
/**
* 接收好友退出信令
*/
public void friendlogoutOrderRecieve(Embody objMsg)
{
String order = objMsg.getOrder();
if (order.equals(setting.Command.friendliveline))// 下线通知时更新自己的好友列表
{
aplay.soundPlay("/music/bell.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), " 你的好友"
+ objMsg.getSourceID() + "下线", "警告", 1);
userInfo = (User) (objMsg.getObjMessage());
friendTree.liveline((User) objMsg.getObjMessage(), objMsg
.getSourceID());
mainUI.getjFrame();
mainUI.getjFrame().setVisible(true);
}
}
/**
* 接收与好友聊天信令
*/
@SuppressWarnings("unchecked")
public void chatMsgRecieve(Embody objMsg)
{
String order = objMsg.getOrder();
if (order.equals(setting.Command.personchatsuccess))
{
aplay.soundPlay("/music/msg.wav");
if (Client.chatui == null)// 与第一个客户会话时实例化一个聊天窗口
{
chatui = new ChatUI(objMsg.getDestID(), objMsg.getSourceID());
chatUIvector.add(chatui);
} else
{
boolean newJFrame = true;
for (int i = 0; i < chatUIvector.size(); i++)
{
ChatUI c = (ChatUI )chatUIvector.elementAt(i);// 遍历所有ID对 若找到相等的
if (c.destid == objMsg.getSourceID())
{
newJFrame = false;// 不开新窗口
}
}
if (newJFrame)// 若没找到 则开一个新窗口
{
aplay.soundPlay("/music/msg.wav");
chatui = new ChatUI(objMsg.getDestID(), objMsg
.getSourceID());// 是否有新的好友和你聊天 有则再开启一个窗口
chatUIvector.add(chatui);
}
}
for (int i = 0; i < chatUIvector.size(); i++)
{
ChatUI c = (ChatUI )chatUIvector.elementAt(i);
// 构造的时候以自己的ID为源ID以好友的ID为目标ID
if (objMsg.getDestID() == c.souceid
&& objMsg.getSourceID() == c.destid)// 若目标ID是 我
{
c.getJFrame();
c.jFrame.setVisible(true);
c.jTextArea1.append((String) objMsg.getObjMessage());
c.jTextArea1.selectAll();
c.jFrame.setTitle("与好友"
+ String.valueOf(objMsg.getSourceID()) + "对话中");
}
}
}
if (order.equals(setting.Command.personchatfail))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), "信息对方不在线,已留言",
"警告", 2);
}
}
/**
* 密码验证
*/
public void inchatver(String d,int soucid)
{
Embody objMsg = new Embody();
String s = constuser.getPassword();
if(s.equals(d))
{
objMsg.setSourceID(soucid);
objMsg.setOrder(setting.Command.inchatflish);
send(objMsg);
}
else
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), "密码错误!","接收失败", 1);
objMsg.setOrder(setting.Command.chatverfail);
send(objMsg);
}
}
/**
* 接收好友消息
*/
public void inchatReceieve(Embody objMsg)
{
String order = objMsg.getOrder();
if(order.equals(setting.Command.Inchatque))
{
message = (String)objMsg.getObjMessage();
id = objMsg.getSourceID();
openInchat();
}
if (order.equals(setting.Command.Inchatyes))
{
inchatarrivui = new InchatarrivUI(constuser.getID(), constuser.getID());
inchatarrivui.getJFrame();
aplay.soundPlay("/music/msg.wav");
inchatarrivui.jFrame.setVisible(true);
inchatarrivui.jTextArea1.append(message + "\n");
inchatarrivui.jTextArea1.selectAll();
inchatarrivui.jFrame.setTitle("好友"
+ String.valueOf(id) + "的消息");
}
if(order.equals(setting.Command.Inchatsuc))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), "对方已收到你的消息!",
"提示", 1);
}
if (order.equals(setting.Command.Inchatfail))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), "对方不在线!",
"发送失败", 2);
}
if (order.equals(setting.Command.Inchatfail1))
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(mainUI.getjFrame(), "对方密码错误!",
"发送失败", 2);
}
}
/**
* 打开发送企业消息窗口
*/
public void openInchat()
{
inchatver = new InchatverUI(constuser.getID());
inchatver.getJFrame();
inchatver.getJFrame().setVisible(true);
}
/**
* 接受企业消息
*/
public void inchatsuc()
{
Embody objMsg = new Embody();
objMsg.setDestID(id);
objMsg.setOrder(setting.Command.Inchatok);
send(objMsg);
}
/**
* 接收更新个人设置信令
*/
public void reicievModifyUserInfo(Embody objMsg)
{
String order = objMsg.getOrder();
if (order.equals(setting.Command.modifyusrinfosuccess))
{
userInfo=(User)objMsg.getObjMessage();
Client.modify.getJTextField().setText(userInfo.getNickName());
Client.modify.jLabel10.setText(String.valueOf(userInfo.getID()));
Client.modify.getJPasswordField().setText(userInfo.getPassword());
Client.modify.getJTextField1().setText(userInfo.getName());
Client.modify.getJTextField2().setText(userInfo.getAge());
Client.modify.getJComboBox().setSelectedItem(userInfo.getSex());
Client.modify.getJComboBox3().setSelectedItem(userInfo.getConstellation());
Client.modify.getJTextArea().setText(userInfo.getExplain());
JOptionPane.showMessageDialog(null," 你的信息更新成功","提示",1);
}
}
/**
* 响应ClientMainui退出事件
*/
public void logout()
{
Embody objMsg = new Embody();
objMsg.setOrder("退出");
objMsg.setSourceID(constuser.getID());// 不应拿标题设置
send(objMsg);
try
{
client.runFlag = false;// 不再接收信令
netIn.close();// 关闭网络对象输入流
netOut.close();// 关闭网络对象输出流
socket.close();//
System.exit(0);
} catch (Exception eclose)
{
System.out.println("客服端退出异常:" + eclose.getMessage());
}
}
/**
* 响应LoginUI登录事件
*/
public void login(String userID, String userPWD,String IP)
{
User userInfo = new User();// 此userInfo登录时传送过去的只有ID,密码和IP
try
{
userInfo.setID(Integer.parseInt(userID));
userInfo.setPassword(userPWD);
}
catch (Exception e)
{
aplay.soundPlay("/music/system.wav");
JOptionPane.showMessageDialog(null, "用户ID和密码输入错误", "警告", 1);
return;
}
userInfo.setIP(IP);
Embody objMsg = new Embody(); // 首次通信
objMsg.setOrder(setting.Command.login);
objMsg.setObjMessage(userInfo);// 登录时传送过去的只有ID,密码和IP
send(objMsg);
}
/**
* 响应ClientMainUI添加好友事件
*/
public void addFriend()
{// 添加好友
String s = JOptionPane.showInputDialog(mainUI.getjFrame(),
"请输入要加的用户号码", "添加好友", 3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -