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

📄 friend.java

📁 用JAVA写的qq,为qq的跨平台使用提供了可能,一直都很讨厌tencent不为linux提供方便,自己写了一个qq,希望有人继续完善,我现在没空做了
💻 JAVA
字号:
//Friend.java
/**
@author Joedan hongguangming@sohu.com
*/
import myevent.*;
import java.net.*;

class Friend//好友
{
	Friend(String _id, String _name)//传入用户ID和用户名
	{
		id = _id;
		name = _name;
	}
	public boolean 是否在线()
	{
		return online;
	}
	public void 添加好友消息发送代理(好友消息发送代理 _发送者)
	{
		发送者 = _发送者;
	}
	public void 上线(String ip, String port, 好友消息发送代理 _发送者)
	{
/*
//		如果在线,退出
		if (online)
			return;
*/
//		发送者 = _发送者;
		发送者 = _发送者;
//		构造wnd
		wnd = new ChatFrame();
		wnd.添加会话动作监视器(new 会话处理类());
//		构造add
		add = new InetSocketAddress(ip, Integer.parseInt(port));
//		online = true
		online = true;
	}
	public void 显示聊天界面()
	{
		if (!online) return;
		wnd.显示();
	}
	public void 下线()
	{
		online = false;
	}
	public void 添加新消息(String msg)
	{
		if (!online) return;
//		将msg加入newMsg
		newMsg += msg + "\n";
//		如果“聊天窗口”可见,将newMsg添加到“聊天窗口”中,并将newMsg清空
		if (!wnd.是否在听())
			return;
		wnd.听(newMsg);
		newMsg = "";
	}
	public void 设置用户ID(String _id)
	{
		id = _id;
	}
	public String 读取用户ID()
	{
		return id;
	}
	public void 设置用户名(String _name)
	{
		name = _name;
	}
	public String 读取用户名()
	{
		return name;
	}
	public String 读取聊天记录()
	{
//		返回旧消息加新消息的内容
		return oldMsg + newMsg;
	}
/******************private***************************/
	private class 会话处理类 implements 会话动作监视器//该类用来做为会话界面的“会话动作监视器”
	{
		public void 会话说处理(String msg)//处理如何将说的内容让对方听到
		{
//			如果“发送者”存在,就把消息发送出去
			if (发送者 != null)
				发送者.好友消息发送(add, name + "对我说:\n" + msg);
		}
		public void 会话见面处理()//见面时有什么事情要做
		{
//			如果已经有什么话想对我说,那就赶快说吧
			if (newMsg.equals(""))
				return;
			wnd.听(newMsg);
			newMsg = "";
		}
		public void 会话告别处理()//告别时有什么事情要做
		{
//			把我们的这次谈话保存好,以后才可以保存
			oldMsg += wnd.获得谈话内容() + "\n";
		}
	}
	private 好友消息发送代理 发送者;
	private String id;//用户ID
	private String name;//用户名
	private boolean online = false;//在线标志
	private String newMsg = "";//新消息
	private String oldMsg = "";//看过的消息
	private 会话界面 wnd;//与该好友关联的聊天窗体
	private SocketAddress add;//该好友的地址

	public static void main(String args[])
	{
		Friend friend = new Friend("4137759", "Joedan");
		friend.上线("127.0.0.1", "5959", new 好友消息发送代理()
			{
				public void 好友消息发送(SocketAddress add, String msg)
				{
					System.out.println(add.toString() + " " + msg);
				}
			}
		);
		friend.显示聊天界面();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -