使用gui界面的java网络聊天室代码
时间: 2024-02-04 12:02:47 浏览: 27
以下是一个简单的基于Java的GUI网络聊天室代码示例:
```java
import javax.swing.*;
import java.awt.*;
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;
public class ChatClient extends JFrame {
private JTextArea chatArea;
private JTextField messageField;
private PrintWriter writer;
private BufferedReader reader;
public ChatClient() {
setTitle("Chat Client");
setSize(300, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
chatArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(chatArea);
add(scrollPane, BorderLayout.CENTER);
messageField = new JTextField();
messageField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sendMessage();
}
});
add(messageField, BorderLayout.SOUTH);
setVisible(true);
connectToServer();
}
private void connectToServer() {
try {
Socket socket = new Socket("localhost", 5000);
writer = new PrintWriter(socket.getOutputStream(), true);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
new Thread(new Runnable() {
@Override
public void run() {
String message;
try {
while ((message = reader.readLine()) != null) {
chatArea.append(message + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
} catch (IOException e) {
e.printStackTrace();
}
}
private void sendMessage() {
String message = messageField.getText();
writer.println(message);
messageField.setText("");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ChatClient();
}
});
}
}
```
这是一个简单的聊天客户端,它通过在本地主机上的端口5000连接到聊天服务器。当用户在文本框中输入消息并按下回车键时,消息将发送到服务器并显示在聊天区域中。聊天服务器的代码将在另一个类中实现。