⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.java

📁 是一个JAVA通讯程序.功能不多
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			{
				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 + -