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

📄 room.java

📁 一个仿qq的程序源码 一个用纯java开发的
💻 JAVA
字号:
package qianqian.p2pchat.control;

import qianqian.p2pchat.constant.Const;
import qianqian.p2pchat.gui.*;
import qianqian.p2pchat.message.RoomMessage;
import qianqian.p2pchat.message.SystemMessage;
import qianqian.p2pchat.tools.Starter;

public class Room {
	private static final long serialVersionUID = 1L;
	private Peer peer = null;
	private String name = null;
	private Peer admin = null;
	private RoomForm room = null;
	private java.util.LinkedList<Peer> peers = new java.util.LinkedList<Peer>();
	private static java.util.TreeMap<String, Room> preChatrooms = new java.util.TreeMap<String, Room>();

	public Room(String iName) {
		name = iName;
		room = ChatRoomForm.getInstance();
		room.setTitle("欢迎进入[" + name + "]聊天室");
		preChatrooms.put(name, this);
		room.setVisible(true);
		Starter.getInstance().setRoomform(room);
	}
	
	public RoomForm getRoomForm() {
		return room;
	}

	public Room(Peer iPeer) {
		peer = iPeer;
		name = Const.DefRoom;
		room = UserRoomForm.getInstance(peer);
		room.setTitle(peer.getName() + "[" + peer.getUserId() + "]");
		preChatrooms.put(name, this);
		room.setVisible(true);
		
		Starter.getInstance().setRoomform(room);
	}

	public static Room getByName(String iName) {
		if (preChatrooms.containsKey(iName))
			return preChatrooms.get(iName);
		else
			return null;
	}

	public String getName() {
		return name;
	}

	public Peer getAdmin() {
		return admin;
	}

	public void setAdmin(Peer iAdmin) {
		admin = iAdmin;
	}

	public java.util.LinkedList<Peer> getPeers() {
		return peers;
	}

	public void addPeer(Peer iPeer) {
		if (peers.contains(iPeer))
			return;
		peers.add(iPeer);
		room.updateList(getPeers(), true);
	}

	public void tellJoin(Peer iPeer) {
		showMsg(iPeer.getName() + "\0进入\0" + getName());
		addPeer(iPeer);
	}

	public void showMsg(String iStr) {
		room.addRecvLine("::: " + iStr);
	}

	public void left(Peer iPeer) {
		peers.remove(iPeer);
		showMsg(iPeer.getName() + "\0离开\0" + getName());
		room.updateList(getPeers(), false);
	}

	public void msgRecved(RoomMessage iMsg) {
		room.addRecvLine("<" + iMsg.getSender().getName() + "> "
				+ iMsg.getMsgContent());
	}

	public void finalize() throws Throwable {
		preChatrooms.remove(this);
		super.finalize();
	}

	public boolean equals(Room iTo) {
		if (iTo == null)
			return false;
		return name.equals(iTo.name);
	}

	public static void createRoom(String iName) {
		Room newRoom = new Room(iName);
		newRoom.setAdmin(Controller.getInstance().getMe());
		Controller.getInstance().setAndMultiCastRoom(newRoom);
	}

	public static void joinRoom(String iName) throws Exception {
		SystemMessage newMsg = new SystemMessage(Controller.getInstance()
				.getMe(), Const.CODE_JOIN_ROOM, iName);
		Controller.getInstance().getDispatcher().dispatchToAll(newMsg);
	}
}

⌨️ 快捷键说明

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