JAVA程序设计《Java课程设计》很不错的综合实验.为网络聊天室(BS模式)

源代码在线查看: clientchat.java~1~

软件大小: 35 K
上传用户: jl315
关键词: JAVA Java BS模式 程序设计
下载地址: 免注册下载 普通下载 VIP

相关代码

				import java.awt.*;
				import java.io.*;
				import java.net.*;
				import java.applet.*;
				import java.util.Hashtable;
				
				public class ClientChat extends Applet implements Runnable
				{
				  Socket  socket=null;
				  DataInputStream in=null; 
				  DataOutputStream out=null; 
				  InputNameTextField 用户提交昵称界面=null;
				  ChatArea 用户聊天界面=null;
				  Hashtable listTable;                   
				  Label 提示条;
				  Panel north, center;
				  Thread thread;
				  public void init() 
				   {
				    int width=getSize().width;                           
				    int height=getSize().height;                          
				    listTable=new Hashtable(); 
				    setLayout(new BorderLayout()); 
				    用户提交昵称界面=new  InputNameTextField(listTable);
				    int h=用户提交昵称界面.getSize().height;
				    用户聊天界面=new ChatArea("",listTable,width,height-(h+5));
				    用户聊天界面.setVisible(false);
				    提示条=new Label("正在连接到服务器,请稍等...",Label.CENTER);
				    提示条.setForeground(Color.red);
				    north=new Panel(new FlowLayout(FlowLayout.LEFT));
				    center=new Panel();
				    north.add(用户提交昵称界面);
				    north.add(提示条);
				    center.add(用户聊天界面);
				    add(north,BorderLayout.NORTH);
				    add(center,BorderLayout.CENTER);
				    validate();
				   }
				 public void start()
				   {
				     if(socket!=null&&in!=null&&out!=null)
				        {  try
				              {
				                socket.close();
				                in.close(); 
				                out.close();
				                用户聊天界面.setVisible(false);
				              
				              }
				          catch(Exception ee)
				              {
				              }
				        }
				     try
				        {
				         socket = new Socket(this.getCodeBase().getHost(), 6666);
				         in=new DataInputStream(socket.getInputStream());
				         out=new DataOutputStream(socket.getOutputStream());
				        }
				     catch (IOException ee)
				        { 
				          提示条.setText("连接失败");
				        }
				     if(socket!=null)
				        {
				         InetAddress address=socket.getInetAddress();
				         提示条.setText("连接:"+address+"成功");
				         用户提交昵称界面.setSocketConnection(socket,in,out);
				         north.validate();
				        } 
				     if(thread==null)
				        {
				          thread=new Thread(this);
				          thread.start();
				        }
				   } 
				  
				 public void stop()
				   {
				     try 
				         {
				           socket.close();
				           thread=null;
				         }
				     catch(IOException e)
				         {
				          this.showStatus(e.toString());
				         }
				   }
				 public void run()
				 {  
				    while(thread!=null)
				        {
				           if(用户提交昵称界面.get能否聊天()==true)
				             {
				                用户聊天界面.setVisible(true);
				                用户聊天界面.setName(用户提交昵称界面.getName());
				                用户聊天界面.setSocketConnection(socket,in,out);
				                提示条.setText("祝聊天愉快!");
				                center.validate();
				                break;
				             }
				           try
				               {
				                 Thread.sleep(100);
				               }
				           catch(Exception e)
				               {
				               }
				        }
				 }  
				}
							

相关资源