📄 clientchat.java
字号:
package org.my.test.chat;
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 java.net.UnknownHostException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ClientChat extends JFrame{
private JTextArea jta;
private JTextField jtf;
private Socket s;
PrintWriter pw;
BufferedReader br;
public ClientChat(String title){
super(title);
jta=new JTextArea();
jtf=new JTextField();
jta.setEditable(false);
add(jta);
add(jtf,"South");
try {
s=new Socket("127.0.0.1", 9100);
} catch (UnknownHostException e) {
JOptionPane.showMessageDialog(null, "请输入正确的主机地址", "注意",
JOptionPane.ERROR_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "连接到服务失败..", "注意",
JOptionPane.ERROR_MESSAGE);
}
jtf.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(jtf.getText().trim().equals("")){
JOptionPane.showMessageDialog(null, "请输入消息..", "注意",
JOptionPane.INFORMATION_MESSAGE);
}else{
try {
pw=new PrintWriter(s.getOutputStream());
pw.println(jtf.getText().trim());
pw.flush();
jtf.setText("");
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "连接服务器失败..", "注意",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
});
this.setBounds(300, 200, 300, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public void reMsg(){
while(true){
try {
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
String str=br.readLine();
jta.append(str);
jta.append("\n");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "连接服务器失败..", "注意",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
public static void main(String[] args) {
ClientChat cc=new ClientChat("聊天窗口");
cc.reMsg();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -