📄 room.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 + -