📄 qqclient.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 + -