📄 chatclient.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class ChatClient extends Frame implements ActionListener{
private final String s_ip = "192.168.0.62";
private final int s_port= 8080;
private String serverIP = s_ip;
private int serverPort = s_port;
private Socket connection = null;
private BufferedReader in = null;
private PrintStream out = null;
private TextArea output1;
private TextArea output2;
private TextArea input;
private Button sendButton;
private Button clear;
private Button quitButton;
private Label lb1;
private Label lb2;
private Label lb3;
private Label lb4;
private Choice user;
private Color c;
private Key hh = new Key();//.........
//01
public ChatClient(){
output1 = new TextArea(19,28);
output2 = new TextArea(19,12);
input = new TextArea(5,30);
lb1 = new Label("信息栏:");
lb2 = new Label("用户栏:");
lb3 = new Label("发送给:");
lb4 = new Label("消息");
user = new Choice();
sendButton = new Button(" 发送 ");
clear = new Button(" 清除 ");
quitButton = new Button(" 退出 ");
addKeyListener(hh);//................
}
//02
public void displayFrame(){
Panel b01 = new Panel();//...........信息栏
b01.setLayout(new BorderLayout());
b01.add("West",lb1);
b01.add("South",output1);
Panel b02 = new Panel();//..........用户栏
b02.setLayout(new BorderLayout());
b02.add("West",lb2);
b02.add("South",output2);
Panel b1 = new Panel();//........输出面版1
b1.setLayout(new BorderLayout());
b1.add("West",b02);
b1.add("Center",b01);
Panel b2 = new Panel();//........下拉列表面版2
Panel b11 = new Panel();
Panel b12 = new Panel();
Panel b13 = new Panel();
Panel b14 = new Panel();
Panel b15 = new Panel();
Panel b16 = new Panel();
Panel b17 = new Panel();
user.add("所有人");
b2.setLayout(new GridLayout(1,7));
b2.add(b11);
b2.add(b12);
b2.add(b14);
b2.add(b15);
b2.add(b16);
b14.add(lb3);
b15.add(user);
b16.add(lb4);
b2.add(b13);
b2.add(b17);
Panel b4 = new Panel();//..........按纽编排
Panel b21 = new Panel();
Panel b22 = new Panel();
Panel b23 = new Panel();
Panel b24 = new Panel();
Panel b25 = new Panel();
Panel b26 = new Panel();
Panel b27 = new Panel();
b4.setLayout(new GridLayout(1,7));
b4.add(b21);
b4.add(b22);
b4.add(b23);
b22.add(clear);
b24.add(sendButton);
b26.add(quitButton);
b4.add(b24);
b4.add(b25);
b4.add(b26);
b4.add(b27);
Panel b3 = new Panel();//.........输入面版3
b3.setLayout(new BorderLayout());
b3.add("North",input);
b3.add("Center",b4);
setTitle("Chat system");//..........
setLayout(new BorderLayout());
add("North",b1);
add("Center",b2);
add("South",b3);//更改
c = new Color(230,230,230);
//.........................................
addWindowListener(new CloseWindow());
sendButton.addActionListener(this);
quitButton.addActionListener(this);
clear.addActionListener(this);
connect();//...............
setLocation(280,30);
setSize(500,530);
setVisible(true);
setBackground(c);
lb1.setBackground(c);
lb2.setBackground(c);
lb3.setBackground(c);
lb4.setBackground(c);
input.requestFocus();//......
}
//03
private void connect(){
try{
connection = new Socket(serverIP,serverPort);
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
out = new PrintStream(connection.getOutputStream());
Thread t = new Thread(new RemoteReader());
t.start();
String str = in.readLine();//;;;;;;;;;;;;;
output2.append(str + "\n");//;;;;;;;;;;;
}catch(Exception e){
System.out.println(e);
}
}
//04-----0
private class Key extends KeyAdapter{
public void keyPressed(KeyEvent ke){
if(ke.getKeyChar() == 'g')
{String text = input.getText();
out.println(text);
input.setText("");}
}
}
//04----1
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals(" 发送 ")){//51
String text = input.getText();
out.println(text);
input.setText("");}
else if(e.getActionCommand().equals(" 清除 ")){
output1.setText("");}
else{
System.exit(0);
}
input.requestFocus();
}
//05
private class CloseWindow extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
//06
private class RemoteReader implements Runnable{
private boolean keepConnected =true;
public void run(){
while(keepConnected==true){
try{
String str = in.readLine();
if(str.equals("STUDENT13 :")||str.equals("*k"))
{output2.append(str + "\n");
}
else{
output1.append(str + "\n");
}
}catch(Exception e){
keepConnected = false;//改正
System.out.println(e);
}
}
}
}
//07....179
public static void main(String ages[]){
ChatClient chatClient = new ChatClient();
chatClient.displayFrame();
}
//
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -