📄 testclient.java
字号:
package bookCase;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class TestClient extends JFrame implements ActionListener {
Socket clientSocket;//创建一个socket
int clientnum=0;
BufferedReader dis;//输入流
PrintWriter dos;//输出流
JTextField tf;//文本编辑区域
JTextArea ta;//聊天内容显示区域
String s11,s22;//
public TestClient(String s1, String s2) {
this.setTitle("聊天程序客户端");
JScrollPane jp=new JScrollPane();
ta=new JTextArea(10,10);//设置内容显示区域的长宽
Panel p=new Panel();
tf=new JTextField(20);//设置文本输入长度20
JButton b=new JButton("发送");//新建一个发送按钮
b.addActionListener(this);//添加按钮发生事件
tf.addActionListener(this);//添加 文本输入发生事件
p.add(tf);//把文本编辑区添加到内容面板中
p.add(b);
jp.setViewportView(ta);//设置JScrollPane面板可见
this.getContentPane().add(jp);//调用getContentPane()得到内容面板对象,把jp添加到的内容面板中
this.getContentPane().add("South",p);
this.setSize(350,350);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.s11=s1;//用于传递参数给当前对象
this.s22=s2;
this.setVisible(true);
this.connect();
this.createReadThread();
tf.requestFocus();
}
private void connect() {
try {
clientSocket = new Socket(s22,4600);//给s2赋值,它的主机IP为S22,端口号是4800
//得到对应的输出流,写客户数据到服务器Socket
dos=new PrintWriter(clientSocket.getOutputStream());
//得到对应的输入流 ,从服务器Socket读取一行字符串
dis=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
String s=new String (tf.getText());
//while(! s.equals("end")){
dos.write(s11+"说: "+s);
ta.append("Client"+clientnum+"自己说:"+s);
ta.append("\n");
tf.setText("");
tf.requestFocus();
//}
}
private void createReadThread() {
ReadThread rt=new ReadThread(this.ta,this.dis,this.clientSocket,this.clientnum);
rt.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -