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

📄 qqclient.java

📁 java的简单的qq聊天软件代码
💻 JAVA
字号:
package chat;
//如果换ip要更改大约50行处

import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;
import chat.SystemIn;
public class QQClient {
JFrame frame;
JTextField jtf;
JTextArea jta;
JComboBox jcb;
Socket s;
BufferedReader in;
PrintWriter out;
String name;

public static void main(String[] args) {
   System.out.print("Name:");
   String n=SystemIn.readString();
   QQClient c=new QQClient(n);
   c.receive();
}

public QQClient(String n){
   this.name=n;
   frame=new JFrame("Chat Room "+name);
   frame.setSize(400,300);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
   jta=new JTextArea();
   JScrollPane jsp=new JScrollPane(jta);
   frame.add(jsp);
  
   jta.setEditable(false);
  
   jtf=new JTextField(20);
   jcb=new JComboBox();
   jcb.addItem("All");
   JPanel panel=new JPanel();
   panel.add(jcb);
   panel.add(jtf);
   frame.add(panel,"South");
  
   frame.setVisible(true);
  
   try {
    s=new Socket("192.168.0.88",7000);//"192.168.18.6",7000);
    in=new BufferedReader(new InputStreamReader(s.getInputStream()));
    out=new PrintWriter(s.getOutputStream());
    out.println(name);
    out.flush();
   } catch (UnknownHostException e1) {
    e1.printStackTrace();
   } catch (IOException e1) {
    e1.printStackTrace();
   }
  
   jtf.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
     String text=jtf.getText();
     jtf.setText("");
     String to=(String)jcb.getSelectedItem();
     String t=name+"%"+to+"%"+text;
     out.println(t);
     out.flush();
    }
   });
}

public void receive(){
   try {
    while(true){
     String text=in.readLine();
     StringTokenizer st=new StringTokenizer(text,":");
     String type=st.nextToken();
     String value=st.nextToken();
     if (type.equals("Add")){
      if(!(this.name.equals(value))){
      this.jcb.addItem(value);
      }
      this.jta.append(value+" entered!\n");
     }
     if (type.equals("Del")){
      this.jcb.removeItem(value);
      this.jta.append(value+" exited!\n");
     }
     if (type.equals("Text")){
      StringTokenizer st2=new StringTokenizer(value,"%");
      String from=st2.nextToken();
      String to=st2.nextToken();
      String content=st2.nextToken();
      this.jta.append(from+" 说:"+content+"\n");
     }
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
}
}

⌨️ 快捷键说明

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