基本信息
源码名称:java聊天室源码(含客户端、服务端)
源码大小:0.03M
文件格式:.zip
开发语言:Java
更新时间:2020-02-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 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);
}
}