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

📄 clientreceivethread.java

📁 注:语音聊天部分还未完成
💻 JAVA
字号:
package com.gamvan.club.users.im.guest;import java.awt.Color;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.net.Socket;import javax.swing.ImageIcon;import javax.swing.JComboBox;import javax.swing.JOptionPane;import javax.swing.JTextField;import com.gamvan.club.users.im.tools.MyTextPane;public class ClientReceiveThread extends Thread {        /**         * 此类用来接受服务器端发来的消息         *	过客         */        private JComboBox userOnlineList;        private MyTextPane textPaneUp;        private Socket clientSocket;        private ObjectInputStream receiveMeg;        private ObjectOutputStream sendMeg;        private JTextField sendText;        private Color color;        private ImageIcon icon;        public boolean isStop = false;        public ClientReceiveThread(Socket clientSocket,                        ObjectOutputStream sendMeg,                        ObjectInputStream receiveMeg,                        MyTextPane textPaneUp,JComboBox userOnlineList,JTextField sendText){                this.clientSocket = clientSocket;                this.userOnlineList = userOnlineList;                this.sendMeg = sendMeg;                this.textPaneUp = textPaneUp;                this.receiveMeg = receiveMeg;                this.sendText = sendText;        }        @Override		public void run(){                recevThread();        }        public void recevThread(){                //若套接字没有关闭,则一直执行循环体                while(!isStop&&!clientSocket.isClosed()){                    try{                        //读取服务器发送的聊天信息                        String megType = (String) receiveMeg.readObject();                                                if(megType.equalsIgnoreCase("系统信息")){//处理系统信息                        	                        	String systemMeg = (String)receiveMeg.readObject();                        	textPaneUp.append(Color.PINK,"[系统信息]" + systemMeg);                        	                        }else if(megType.equalsIgnoreCase("服务器关闭")){//处理服务器关闭信息                        	                            sendMeg.close();                            receiveMeg.close();                            clientSocket.close();                            textPaneUp.append(Color.RED,"股务器已经关闭!!!!!" + "\n");                            break;                                                    }else if(megType.equalsIgnoreCase("聊天信息")){//接受聊天信                        	                        	                        	                        	                        	                        	String userName = (String)receiveMeg.readObject();                         	textPaneUp.append(Color.pink,userName);        					        					        			String sendAction =(String)receiveMeg.readObject();        			textPaneUp.append(Color.BLACK,sendAction);        					        					        			String to = (String)receiveMeg.readObject();        			textPaneUp.append(Color.BLACK,to);        				        					        			String toSomebody = (String)receiveMeg.readObject();        			textPaneUp.append(Color.BLUE,toSomebody);        					        					        			String say = (String)receiveMeg.readObject();        			textPaneUp.append(Color.BLACK,say+":");        					        					        			String date = (String)receiveMeg.readObject();        			textPaneUp.append(Color.LIGHT_GRAY,date+"\n\n");        					        					        			String sendStatus = (String)receiveMeg.readObject();        			textPaneUp.append(Color.lightGray,sendStatus);        					        					        			String message = (String) receiveMeg.readObject();        			//聊天信息颜色        			color = (Color)receiveMeg.readObject();	        			textPaneUp.append(color,message+"\n\n");        					                                                    }else if(megType.equalsIgnoreCase("用户列表")){//接受用户列表                        	                            String userList = (String)receiveMeg.readObject();                            //分析列表内容,并将更新界面用户列表组合框                            String userNames[] = userList.split("\n");                            userOnlineList.removeAllItems();                            int testEnd = 0;                            userOnlineList.addItem("所有人");                            while(testEnd < userNames.length){                                userOnlineList.addItem(userNames[testEnd]);                                testEnd++;                            }                        }else if(megType.equalsIgnoreCase("kicked!")){                        	                            String systemMeg = (String)receiveMeg.readObject();                            textPaneUp.append(Color.RED,"[踢人信息]" + systemMeg + "\n");                            JOptionPane.showMessageDialog(null,"你被踢出了聊天大厅!" +                                           "如果有问题请与系统管理员联系!!",                                           "系统警告",JOptionPane.WARNING_MESSAGE);                           sendText.setEditable(false);                                                   }else if(megType.equalsIgnoreCase("下线")){                        	String leave = (String)receiveMeg.readObject();                        	textPaneUp.append(Color.LIGHT_GRAY,leave);                        }else if(megType.equalsIgnoreCase("警告")){                        	String warning = (String)receiveMeg.readObject();                        	textPaneUp.append(Color.red,warning);                        }else if(megType.equalsIgnoreCase("图片")){        					        			receiveIcon();//接收图片                        }                      userOnlineList.setSelectedIndex(0);//设置选中默认项                }catch(Exception e){                	return;                }            }//end while        }        private void receiveIcon() throws IOException,        ClassNotFoundException{        	String userName = (String)receiveMeg.readObject();		    		icon = (ImageIcon)receiveMeg.readObject();   		    		textPaneUp.insertIcon(icon);		    		textPaneUp.append(Color.blue,userName);    		        }}

⌨️ 快捷键说明

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