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

📄 clientpoint.java

📁 是用java写的聊天室代码和文档
💻 JAVA
字号:
import   javax.swing.*;  
  import   java.awt.event.*;  
  import   java.io.*;  
  import   java.net.*;  
  import   java.awt.*;  
   
  public   class   ClientPoint   extends   JFrame   implements  

ActionListener,KeyListener{  
      static   int   SERVERPORT=8088;  
      static   String   SERVERADDRESS="127.0.0.1";  
      private   BufferedReader   cin=null;  
      private   PrintWriter   cout=null;  
      private   Socket   client=null;  
      public   String   clientname;  
      private   JPanel   jPanel1=new   JPanel();  
      private   JTextField   jTextSendInfo=new   JTextField(38);  
      private   JTextArea   jTextGetInfo=new   JTextArea(16,33);      
      public   JScrollPane   areaScrollPane=new   JScrollPane(jTextGetInfo);      
      private   Button   Send=new   Button("发送");  
      private   Button   Link=new   Button("连接");  
       
      public   ClientPoint(){      
          super("欢迎使用聊天室^_^");          
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);          
          setSize(480,465);  
          jPanel1.add("South",jTextSendInfo);  
          jPanel1.setBackground(new   Color(75,   234,   166));  
  jTextGetInfo.setBackground(new   Color(122,150,223));  
          jTextGetInfo.setFont(new   java.awt.Font("Dialog",   0,   15));  
          jTextGetInfo.setForeground(new   Color(176,   42,   0));  
          this.setResizable(false);  
          Send.setBackground(Color.pink);  
          Send.setForeground(Color.blue);  
          Send.setBounds(new   Rectangle(92,   400,   90,   37));  
          Link.setBackground(Color.pink);  
          Link.setForeground(Color.blue);        
          areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);


          areaScrollPane.setAutoscrolls(true);  
        jTextSendInfo.setText("");  
          jPanel1.add("North",areaScrollPane);  
          jTextGetInfo.setEditable(false);  
          jPanel1.add("South",Send);  
          Send.setEnabled(false);  
          jPanel1.add("South",Link);  
          Send.addActionListener(this);  
  jTextSendInfo.addKeyListener(this);  
          Link.addActionListener(new   ActionListener()  
                      {public   void   actionPerformed(ActionEvent   e){  
                      if(!jTextSendInfo.getText().equals("")){  
                              clientname=jTextSendInfo.getText();  
                              connect();                            
                              Link.setEnabled(false);  
                              Send.setEnabled(true);  
                              jTextSendInfo.setText("");  
                      }  
                      else   JOptionPane.showMessageDialog(null,"提示:请输入昵称!!","消息对话框",JOptionPane.WARNING_MESSAGE);  
                      }});  
          this.setContentPane(jPanel1);  
      }  
      public   void   connect(){  
          try{  
              client=new   Socket(SERVERADDRESS,SERVERPORT);                
                cout=new   PrintWriter(client.getOutputStream());                      
                    cin=new   BufferedReader(  
                      new   InputStreamReader(client.getInputStream()));  
                      cout.println("欢迎["+clientname+"]进入聊天室");  
                      cout.flush();  
                        Receiver   r=new   Receiver();  
                      r.start();          
      }catch(Exception   e){  
                     
            e.printStackTrace();  
      }  
  }  
  protected   void   processWindowEvent(WindowEvent   e){  
            if(e.getID()==WindowEvent.WINDOW_CLOSING){  
                    quit();  
            }  
            super.processWindowEvent(e);  
          }  
          public   static   void   main(String[]   args){  
              ClientPoint   cp=new   ClientPoint();  
              cp.show();  
               
          }  
   
  class   Receiver   extends   Thread{  
  public   void   run(){  
  String   msg=null;  
  JScrollBar   sb;  
  try{  
  msg=cin.readLine();  
  while(true){  
  jTextGetInfo.append(msg+"\n");  
  sb=areaScrollPane.getVerticalScrollBar();  
  sb.setValue(sb.getMaximum()+50);  
  jTextSendInfo.setEnabled(true);  
  msg=cin.readLine();  
  }  
  }catch(Exception   e){  
  Send.setEnabled(false);  
  }  
  }  
  }  
  void   quit(){  
  try{  
  cout.println("["+clientname+"]离开聊天室");  
  cout.flush();  
  cout.println("exit");  
  cout.flush();  
  System.out.print("lianjieduankai");  
  cin.close();  
  cout.close();  
  client.close();  
  }catch(Exception   e){}  
  finally{System.exit(0);  
  }  
  }  
   
  public   void   actionPerformed(ActionEvent   e){  
                      if(!jTextSendInfo.getText().equals("")){  
                      cout.println("["+clientname+"]:"+jTextSendInfo.getText());  
                      cout.flush();                      
                      jTextSendInfo.setText("");  
                    jTextSendInfo.setFocusable(true);                      
                          }  
                          else   JOptionPane.showMessageDialog(null,"提示:请输入聊天内容","消息对话框",JOptionPane.WARNING_MESSAGE);

  
                          }  
   
  public   void   keyPressed(KeyEvent   e){}  
  public   void   keyTyped(KeyEvent   e){}  
  public   void   keyReleased(KeyEvent   e)  
  {  
  if   (e.getKeyCode()==KeyEvent.VK_ENTER)  
  {  
  if(!jTextSendInfo.getText().equals(""))  
  {  
  if(cout==null)  
  {  
  clientname=jTextSendInfo.getText();  
  connect();                            
  Link.setEnabled(false);  
  Send.setEnabled(true);  
  jTextSendInfo.setText("");  
  }  
  else  
  {  
  cout.println("["+clientname+"]:"+jTextSendInfo.getText());  
  cout.flush();                      
  jTextSendInfo.setText("");  
  jTextSendInfo.setFocusable(true);    
  }  
  }  
  else  
  {  
  if   (cout==null)  
  {  
  JOptionPane.showMessageDialog(null,"提示:请输入昵称!!","消息对话框",JOptionPane.WARNING_MESSAGE);  
  }  
  else   JOptionPane.showMessageDialog(null,"提示:请输入聊天内容!!","消息对话框",JOptionPane.WARNING_MESSAGE);  
  }  
   
   
   
  }  
  }  
   
  }  

⌨️ 快捷键说明

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