📄 chatroom.java
字号:
// taUserMessage.setText("");
for (int i=intMessageCounter;i<messobj.chat.size();i++)
{
Chat temp=(Chat)messobj.chat.elementAt(i);
String temp_message;
if (temp.chatUser.equals(strLoginName))
{
if(temp.chatToUser.equals(strLoginName))
{
temp_message="系统提示您:请不要自言自语!"+"\n";
}
else
{
if (!temp.whisper) //不是悄悄话
{
temp_message="【你】对【"+temp.chatToUser+"】说:"+temp.chatMessage+"\n";
}
else
{
temp_message="【你】悄悄对【"+temp.chatToUser+"】说:"+temp.chatMessage+"\n";
}
}
}
else
{
if(temp.chatToUser.equals(strLoginName))
{
if (!temp.whisper) //不是悄悄话
{
temp_message="【"+temp.chatUser+"】对【你】说:"+temp.chatMessage+"\n";
}
else
{
temp_message="【"+temp.chatUser+"】悄悄对【你】说:"+temp.chatMessage+"\n";
}
}
else
{
if (!temp.chatUser.equals(temp.chatToUser)) //对方没有自言自语
{
if (!temp.whisper) //不是悄悄话
{
temp_message="【"+temp.chatUser+"】对【"+temp.chatToUser+"】说:"+temp.chatMessage+"\n";
}
else
{
temp_message="";
}
}
else
{
temp_message="";
}
}
}
taUserMessage.append(temp_message);
intMessageCounter++;
}
////////刷新在线用户//////////
lstUserList.clear();
for (int i=0;i<messobj.userOnLine.size();i++)
{
String User=(String)messobj.userOnLine.elementAt(i);
lstUserList.addItem(User);
}
Integer a=new Integer(messobj.userOnLine.size());
lblCount.setText(a.toString());
//显示用户进入聊天室的信息
if(messobj.userOnLine.size()>intUserTotal)
{
String tempstr=messobj.userOnLine.elementAt(messobj.userOnLine.size()-1).toString();
if(!tempstr.equals(strLoginName))
{
taUserMessage.append("【"+tempstr+"】来了"+"\n");
}
}
//显示用户离开聊天室的信息
if(messobj.userOnLine.size()<intUserTotal)
{
for(int b=0;b<user_exit.size();b++)
{
isFound=false;
for(int c=0;c<messobj.userOnLine.size();c++)
{
if(user_exit.elementAt(b).equals(messobj.userOnLine.elementAt(c)))
{
isFound=true;
break;
}
}
if(!isFound) //没有发现该用户
{
if(!user_exit.elementAt(b).equals(strLoginName))
{
taUserMessage.append("【"+user_exit.elementAt(b)+"】走了"+"\n");
}
}
}
}
user_exit=messobj.userOnLine;
intUserTotal=messobj.userOnLine.size();
streamtoserver.close();
streamfromserver.close();
toServer.close();
thread.sleep(1000);
}
}
catch (Exception e)
{
JOptionPane jop = new JOptionPane();
jop.showMessageDialog(null,"不能连接服务器!");
System.out.println(e);
}
} //run()结束
///////////监听按钮响应//////////////
public void actionPerformed(ActionEvent ae)
{
Object source=(Object)ae.getSource();
if (source.equals(btnTimer))
{
new Clock();
}
if(source.equals(btnCls))
{
clearMessage();
}
if(source.equals(btnExit))
{
exit();
}
if(source.equals(btnSend))
{
sendMessage();
}
if(source.equals(btnSave))
{
saveMessage();
}
if(source.equals(lstUserList)) //双击列表框
{
changeUser();
}
} // actionPerformed()结束
///////////监听窗口关闭响应//////////////
class Windowclose extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
exit();
}
}
//"清屏"按钮
public void clearMessage()
{
taUserMessage.setText("");
}
//"退出"按钮
public void exit()
{
Exit exit=new Exit();
exit.exitname=strLoginName;
//发送退出信息
try
{
Socket toServer=new Socket(strServerIp,1001);
//向服务器发送信息
ObjectOutputStream outObj=new ObjectOutputStream(toServer.getOutputStream());
outObj.writeObject(exit);
outObj.close();
toServer.close();
frmChat.dispose();
}
catch(Exception e)
{
}
} //exit()结束
//"发送"按钮
public void sendMessage()
{
Chat chatobj=new Chat();
chatobj.chatUser=strLoginName;
chatobj.chatMessage=txtMessage.getText();
chatobj.chatToUser=String.valueOf(cmbUser.getSelectedItem());
chatobj.whisper=chPrivateChat.isSelected()?true:false;
//向服务器发送信息
try
{
Socket toServer=new Socket(strServerIp,1001);
ObjectOutputStream outObj=new ObjectOutputStream(toServer.getOutputStream());
outObj.writeObject(chatobj);
txtMessage.setText(""); //清空文本框
outObj.close();
toServer.close();
}
catch(Exception e)
{
}
} //sendMessage()结束
//"保存"按钮
public void saveMessage()
{
try
{
FileOutputStream fileoutput=new FileOutputStream("message.txt",true);
String temp=taUserMessage.getText();
System.out.println(temp);
fileoutput.write(temp.getBytes());
fileoutput.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
//将所选用户添加到cmbUser中
public void changeUser()
{
boolean key = true;
String selected = lstUserList.getSelectedItem();
for(int i = 0; i < cmbUser.getItemCount(); i++)
{
if(selected.equals(cmbUser.getItemAt(i)))
{
key = false;
break;
}
}
if(key == true)
{
cmbUser.insertItemAt(selected,0);
}
cmbUser.setSelectedItem(selected);
} //changeUser()结束
public static void main(String args[])
{
new ChatRoom("测试用户","127.0.0.1");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -