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

📄 chatroom.java

📁 它能够进行简单的文字聊天和基本的信息交换。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				//  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 + -