以下是一个使用 Java 的 Swing 库实现的功能完整的聊天室示例代码:\n\njava\nimport javax.swing.*;\nimport java.awt.*;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.io.*;\nimport java.net.Socket;\n\npublic class ChatClient extends JFrame {\n\n private JTextArea chatArea;\n private JTextField messageField;\n private JButton sendButton;\n\n private Socket socket;\n private BufferedReader reader;\n private BufferedWriter writer;\n\n public ChatClient(String serverAddress, int serverPort) {\n setTitle("Chat Room");\n setSize(400, 300);\n setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n\n chatArea = new JTextArea();\n chatArea.setEditable(false);\n JScrollPane scrollPane = new JScrollPane(chatArea);\n\n messageField = new JTextField();\n sendButton = new JButton("Send");\n \n sendButton.addActionListener(new ActionListener() {\n @Override\n public void actionPerformed(ActionEvent e) {\n String message = messageField.getText();\n if (!message.isEmpty()) {\n sendMessage(message);\n messageField.setText("");\n }\n }\n });\n\n setLayout(new BorderLayout());\n add(scrollPane, BorderLayout.CENTER);\n add(messageField, BorderLayout.SOUTH);\n add(sendButton, BorderLayout.EAST);\n\n try {\n socket = new Socket(serverAddress, serverPort);\n reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));\n writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));\n } catch (IOException e) {\n e.printStackTrace();\n }\n\n new Thread(new ReceiveMessageTask()).start();\n\n setVisible(true);\n }\n\n private void sendMessage(String message) {\n try {\n writer.write(message);\n writer.newLine();\n writer.flush();\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n\n private void receiveMessage(String message) {\n chatArea.append(message + "\n");\n }\n\n private class ReceiveMessageTask implements Runnable {\n @Override\n public void run() {\n try {\n String message;\n while ((message = reader.readLine()) != null) {\n receiveMessage(message);\n }\n } catch (IOException e) {\n e.printStackTrace();\n } finally {\n try {\n reader.close();\n writer.close();\n socket.close();\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n }\n }\n\n public static void main(String[] args) {\n new ChatClient("localhost", 8888);\n }\n}\n\n\n此示例实现了一个简单的聊天室客户端,使用 Swing 库构建了用户界面。用户可以在消息输入框中输入消息并点击发送按钮发送给服务器,服务器将收到的消息广播给所有客户端。客户端接收到消息后将其显示在聊天区域中。\n\n要运行此示例,您需要先启动一个聊天服务器,并将服务器地址和端口传递给 ChatClient 构造函数中的参数。

Java Swing 聊天室 - 实现代码与教程

原文地址: https://www.cveoy.top/t/topic/qfPV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录