基本信息
源码名称:java聊天室源码(含客户端、服务端)
源码大小:0.03M
文件格式:.zip
开发语言:Java
更新时间:2020-02-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
使用了线程、实现了多人聊天室。
package com.wanggensheng.chatClient; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.LayoutStyle.ComponentPlacement; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JScrollPane; public class ClientMainWindow extends JFrame { private static final long serialVersionUID = 1L; private JScrollPane scrollPane_1; JTextArea chatWindow; JTextArea userList; JTextArea SendMsg; JButton chatCancelButton; JButton chatSendButton; String userName; String sex; String userInputName; /** * Create the frame. */ public ClientMainWindow() { setAlwaysOnTop(false); addWindowListener(new WindowAdapter() { @Override //关闭窗口动作响应,发送下线信息 public void windowClosing(WindowEvent arg0) { try { ChatManager.getCM().send("下线了:" LoginWindow.userInputName ":" LoginWindow.sex); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); setTitle("聊天客户端~~" LoginWindow.userInputName); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 520, 360); JLabel label = new JLabel("消息窗口"); JLabel label_1 = new JLabel("在线用户列表"); chatSendButton = new JButton("发送"); chatSendButton.addMouseListener(new MouseAdapter() { //发送按钮的事件响应 @Override public void mouseClicked(MouseEvent arg0) { try { ChatManager.getCM().send(LoginWindow.userInputName ":" SendMsg.getText()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } SendMsg.setText(""); } }); chatCancelButton = new JButton("取消"); chatCancelButton.addMouseListener(new MouseAdapter() { //设定取消按钮的事件响应,清空输入框 @Override public void mouseClicked(MouseEvent e) { SendMsg.setText(""); } }); SendMsg = new JTextArea(); SendMsg.setText("你好"); SendMsg.setColumns(10); JScrollPane scrollPane = new JScrollPane(); /* * 窗体参数设置,自动生成 */ scrollPane_1 = new JScrollPane(); GroupLayout groupLayout = new GroupLayout(getContentPane()); groupLayout.setHorizontalGroup( groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup() .addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup() .addGroup(groupLayout.createParallelGroup(Alignment.LEADING) .addComponent(SendMsg, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 391, Short.MAX_VALUE) .addComponent(label) .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE)) .addGap(18) .addGroup(groupLayout.createParallelGroup(Alignment.LEADING) .addComponent(scrollPane_1, GroupLayout.PREFERRED_SIZE, 84, GroupLayout.PREFERRED_SIZE) .addComponent(label_1)) .addGap(10)) .addGroup(Alignment.LEADING, groupLayout.createSequentialGroup() .addComponent(chatSendButton, GroupLayout.PREFERRED_SIZE, 89, GroupLayout.PREFERRED_SIZE) .addGap(96) .addComponent(chatCancelButton, GroupLayout.PREFERRED_SIZE, 83, GroupLayout.PREFERRED_SIZE))) .addGap(0)) ); groupLayout.setVerticalGroup( groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup() .addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE) .addComponent(label) .addComponent(label_1)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup() .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) .addGap(18) .addComponent(SendMsg, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addComponent(scrollPane_1, GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE)) .addGap(11) .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE) .addComponent(chatCancelButton) .addComponent(chatSendButton, GroupLayout.PREFERRED_SIZE, 24, GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); userList = new JTextArea(); userList.setEditable(false); scrollPane_1.setViewportView(userList); userList.setLineWrap(true); chatWindow = new JTextArea(); chatWindow.setEditable(false); scrollPane.setViewportView(chatWindow); chatWindow.setLineWrap(true); chatWindow.setText("欢迎进入聊天室......" "\n"); getContentPane().setLayout(groupLayout); } /* * 以下为给文本域追加消息的方法 * append2ChatWindow(String in) * append2UserList(String in) */ public void append2ChatWindow(String in) { chatWindow.append(in); chatWindow.setCaretPosition(chatWindow.getText().length()); } public void append2UserList(String in) { userList.append(in); userList.setCaretPosition(userList.getText().length()); } public void clearUserList() { userList.setText(null); } }