用Java做一个简单聊天程序代码,带有GUI界面
时间: 2024-03-20 15:45:29 浏览: 81
好的,下面是一个简单的Java聊天程序代码,带有GUI界面,实现了基本的聊天功能:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class ChatClient extends JFrame implements ActionListener {
private JTextArea msgDisplayArea; // 消息显示区域
private JTextField msgInputField; // 消息输入框
private JButton sendButton; // 发送按钮
private BufferedReader reader;
private PrintWriter writer;
public ChatClient() {
// 初始化界面
initGUI();
// 连接服务器
connectServer();
}
/**
* 初始化界面
*/
private void initGUI() {
// 设置窗口标题和大小
setTitle("聊天程序");
setSize(400, 300);
// 创建消息显示区域
msgDisplayArea = new JTextArea();
msgDisplayArea.setEditable(false);
// 创建消息输入框和发送按钮
msgInputField = new JTextField();
sendButton = new JButton("发送");
sendButton.addActionListener(this);
// 创建界面布局
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JScrollPane(msgDisplayArea), BorderLayout.CENTER);
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new BorderLayout());
bottomPanel.add(msgInputField, BorderLayout.CENTER);
bottomPanel.add(sendButton, BorderLayout.EAST);
panel.add(bottomPanel, BorderLayout.SOUTH);
// 设置窗口内容面板
setContentPane(panel);
}
/**
* 连接服务器
*/
private void connectServer() {
try {
// 连接服务器
Socket socket = new Socket("localhost", 8888);
// 获取输入输出流
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream(), true);
// 启动接收消息线程
new Thread(new ReceiveMessageTask()).start();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 发送消息
*/
private void sendMessage() {
String msg = msgInputField.getText();
if (!msg.isEmpty()) {
writer.println(msg);
msgInputField.setText("");
}
}
/**
* 接收消息线程任务
*/
private class ReceiveMessageTask implements Runnable {
@Override
public void run() {
try {
while (true) {
String msg = reader.readLine();
if (msg != null) {
msgDisplayArea.append(msg + "\n");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == sendButton) {
sendMessage();
}
}
public static void main(String[] args) {
// 启动客户端程序
ChatClient client = new ChatClient();
client.setVisible(true);
}
}
```
上面的代码实现了一个简单的聊天程序,包括连接服务器、发送消息、接收消息等功能。运行程序后,输入服务器地址和端口号,点击连接按钮即可连接到服务器。连接成功后,可以输入消息并点击发送按钮发送消息,其他客户端程序将收到消息并显示在消息显示区域中。
阅读全文