资源简介
基于socket编写的聊天室程序,有私聊和群聊功能,限制同名用户登陆
代码片段和文件信息
package chat;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.titledBorder;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Client {
private Jframe frame;
private JTextField txt_port;
private JTextField txt_hostIp;
private JTextField txt_name;
private JButton btn_start;
private JButton btn_stop;
private JPanel northPanel;
private JTextArea textArea;
private JScrollPane rightScroll;
private JList userList;
private JScrollPane leftScroll;
private JSplitPane centerSplit;
private JComboBox comboBox;
private JButton btn_send;
private JPanel pane;
private JTextField textField;
private JPanel southPanel;
private DefaultListModel listModel;
private boolean isConnected = false;//初始状态为”未连接“
private Socket socket;
private PrintWriter writer; //输出流
private BufferedReader reader; //输入流
private MessageThread messageThread;// 负责接收消息的线程
private Map onLineUsers = new HashMap();// 所有在线用户
// 执行发送
public void send() {
if (!isConnected) { //如果没连接服务器则报错
JOptionPane.showMessageDialog(frame “还没有连接服务器,无法发送消息!“ “错误“
JOptionPane.ERROR_MESSAGE);
return;
}
String message = textField.getText().trim(); //发送消息
if (message == null || message.equals(““)) {
JOptionPane.showMessageDialog(frame “消息不能为空!“ “错误“
JOptionPane.ERROR_MESSAGE);
return;
}
sendMessage(frame.gettitle() + “@“ + comboBox.getSelectedItem() + “@“ + message);//发送的消息为客户机名+message
textArea.append(frame.gettitle()+“对“+comboBox.getSelectedItem()+“说:“+“\n“+message+“\n“);
textField.setText(null);//发送完消息后清空发送框
}
// 构造方法
public Client() {
textArea = new JTextArea();
textArea.setEditable(false);
textArea.setForeground(Color.blue);
textArea.setFont(new Font(“楷体“Font.PLAIN15));
textField = new JTextField();
txt_port = new JTextField(“8888“);//端口
txt_hostIp = new JTextField(“127.0.0.1“);//ip地址
txt_name = new JTextField(“a“);//用户名
btn_start = new JButton(“连接“);//连接按钮
btn_stop = new JButton(“断开“);//断开按钮
btn_send = new JButton(“发送“);//发送按钮
listModel = new DefaultListModel();//
userList = new JList(listModel);//用户列表
northPanel = new JPanel();
northPanel.setLayout(new GridLayout(1 8));
northPanel.add(new JLabel(“服务器端口“));
northPanel.add(txt_port);
northPanel.add(new JLabel(“服务器IP“));
northPanel.add(txt_hostIp);
northPanel.add(new JLabel(“用户名“));
northPanel.add(txt_name);
northPanel.add(btn_start);
northPanel.add(btn_stop);
northPanel.setBorder(new titledBorder(“设置“));
rightScroll = new JScrollPane(textArea);
rightScroll.setBorder(new titledBorder(“消息显示区“));//消息显示区
leftScroll = new JScrollPane(userList);
leftScroll.setBorder(ne
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2010-02-04 18:05 chatbox\.classpath
文件 383 2013-01-10 16:49 chatbox\.project
文件 956 2013-01-10 18:57 chatbox\bin\chat\Client$1.class
文件 626 2013-01-10 18:57 chatbox\bin\chat\Client$2.class
文件 623 2013-01-10 18:57 chatbox\bin\chat\Client$3.class
文件 2221 2013-01-10 18:57 chatbox\bin\chat\Client$4.class
文件 1753 2013-01-10 18:57 chatbox\bin\chat\Client$5.class
文件 748 2013-01-10 18:57 chatbox\bin\chat\Client$6.class
文件 1363 2013-01-10 18:57 chatbox\bin\chat\Client$7.class
文件 4382 2013-01-10 18:57 chatbox\bin\chat\Client$MessageThread.class
文件 9738 2013-01-10 18:57 chatbox\bin\chat\Client.class
文件 3321 2012-03-06 20:11 chatbox\bin\chat\msn.png
文件 955 2013-01-10 18:29 chatbox\bin\chat\Server$1.class
文件 736 2013-01-10 18:29 chatbox\bin\chat\Server$2.class
文件 623 2013-01-10 18:29 chatbox\bin\chat\Server$3.class
文件 626 2013-01-10 18:29 chatbox\bin\chat\Server$4.class
文件 2498 2013-01-10 18:29 chatbox\bin\chat\Server$5.class
文件 1720 2013-01-10 18:29 chatbox\bin\chat\Server$6.class
文件 4977 2013-01-10 18:29 chatbox\bin\chat\Server$ClientThread.class
文件 2993 2013-01-10 18:29 chatbox\bin\chat\Server$ServerThread.class
文件 8204 2013-01-10 18:29 chatbox\bin\chat\Server.class
文件 956 2013-01-10 19:01 chatbox\bin\chat\User.class
文件 13730 2013-01-11 08:29 chatbox\src\chat\Client.java
文件 3321 2012-03-06 20:11 chatbox\src\chat\msn.png
文件 14668 2013-01-10 15:52 chatbox\src\chat\Server.java
文件 509 2013-01-10 19:01 chatbox\src\chat\User.java
文件 31434 2013-01-11 08:28 Client.jar
文件 31433 2013-01-10 22:30 Server.jar
目录 0 2013-01-11 20:39 chatbox\bin\chat
目录 0 2013-01-11 20:39 chatbox\src\chat
............此处省略6个文件信息
相关资源
- android游戏开发,连连看源码
- Java重启式随机游走代码(Random Walk
- java 程序换头像
- 东北大学高级java期末试题
- java小游戏 大炮打小鸟
- JAVA生成订单号(日期+流水号)
- java发邮件代码和说明,附mailapi.jar和
- java指纹识别-图片识别技术
- 运用java图形界面编写的学生信息管理
- Dijkstra迪杰斯特拉算法JAVA
- Java实现推箱子游戏
- JAVA三大框架思维导图
- Java数据结构和算法中文第二版——书
- JNI Java本地接口规范官方中文版
- JSP+JavaBean+MySQL实现登陆及增删改查
- java jsp mysql mvc 完整版,带图片
- Java核心技术 卷2 第10版 中文版
- 21 内部窗体java绝对新手
- 中国象棋对弈系统_java课程设计
- Java 2实用教程,第五版 。课后习题
- java生成二维码80134
- 教材管理系统+java+数据库+包含所有表
- JAVA计算器(含有优先级的判定)
- Java 源码:计算某个目录下的所有文件
- java 源码-电梯模拟器-灵活自定义-完美
- Java画图板课程设计报告只有报告没有
- java写的一个流星雨小程序
- java 科学型计算器 代码
- 记事本打印和页面设置功能Java实现
- Java写的模拟打电话程序源代码
评论
共有 条评论