资源简介
自己编写的,实现的功能及特点如下:1、基本功能:实现服务器监听,客户端连接,可进行多人会话的C/S聊天室。2、服务器特点:1)实现GUI界面,可选择端口运行或关闭服务器,可设置最大连接数 2)在GUI记录运行日志,同时日志被保存在log文件中 3)显示在线用户,可以强制任意用户下线 4)可发送系统消息给所有在线用户3、客户端特点:1)可使用一个用户名登录服务器,登录之后进入聊天室界面 2)显示在线用户列表,接收其他用户及系统发送的消息 3)可对输入文字进行字体颜色编辑,可插入图片 4)可选择某个在线用户单独聊天
代码片段和文件信息
package chat.client;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
/**
*聊天室客户端主程序
*这是运行聊天室客户端程序的入口
*/
public class Client implements ActionListener{
private LogonPane logonPane;//登录界面
private ClientModel client;//客户端数据模型
private ClientUI clientUI;//客户端聊天界面
private JButton enterButtonexitButton;//登录按钮
/**
*登录容器,本程序的设计是将登录窗口和聊天窗口分别采用两个Jframe盛放
*当登录成功时,登录窗口隐藏,显示聊天容器,当意外断开连接时,再次显示
*登录窗口以便重新登录。所以有必要设置一个logonframe指针。
*/
private Jframe logonframe;
/**
*构造方法,用于创建登录界面
*
*
*/
public Client() {
logonframe=new Jframe(“登录“);
//将登录界面各元素加入登录窗口
Container contentPane=logonframe.getContentPane();
logonPane=new LogonPane();
enterButton=new JButton(“登录“);
exitButton=new JButton(“退出“);
logonPane.setRelatedButton(enterButton);
enterButton.addActionListener(this);
exitButton.addActionListener(this);
JPanel controlPane=new JPanel();
controlPane.add(enterButton);
controlPane.add(exitButton);
contentPane.add(logonPaneBorderLayout.CENTER);
contentPane.add(controlPaneBorderLayout.SOUTH);
}
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: 在这添加你的代码
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){
e.printStackTrace();
}
createAndShowGUI();
}
/**
*按钮事件处理
*此事件源包括“登录“、“退出“两个按钮。
*/
public void actionPerformed(ActionEvent e) {
// “登录“按钮的事件处理,此过程包括连接服务器,创建聊天界面以及各种异常处理
if(e.getSource()==enterButton){
String ip=logonPane.getIP();
String name=logonPane.getName();
int port;
try{
port=logonPane.getPort();
}catch(NumberFormatException ne){//非数字字符在端口一栏
JOptionPane.showMessageDialog(logonframene.getMessage());
return;
}
try{
client=new ClientModel(ipport);
}catch(java.net.UnknownHostException ue){//ip地址出错
JOptionPane.showMessageDialog(logonframe“不可知的服务器:“+ue.getMessage());
return;
}catch(IOException ie){
JOptionPane.showMessageDialog(logonframeie.getMessage());
return;
}
boolean valid;
try{
valid=client.validate(name);
}catch(IOException ie){
JOptionPane.showMessageDialog(logonframe“服务器连接已满,请稍后重试!“);
return;
}
if(!valid){
JOptionPane.showMessageDialog(logonframe“无效或已经被使用的名字:“+name);
return;
}else{
clientUI=new ClientUI(client){
protected void doWhenStop(){
JOptionPane.showMessageDialog(clientUI“与服务器的连接中断,请重新登录。“);
clientUI.dispose();
logonframe.show();
}
};
clientUI.settitle(client.name+“ 的聊天室“);
clientUI.setDefaultCloseOperation(Jframe.DO_NOTHING_ON_CLOSE);
clientUI.setLocationRelativeTo(logonframe);
clientUI.show();
client.start();
logonframe.dispose();
}
}else if(e.getSource()==exitButton){
System.exit(1);
}
}
/**
*退出处理,加入一个选择对话框
*/
p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4179 2008-06-02 22:20 聊天室\classes\chat\client\ClientModel.java
文件 8875 2008-06-06 16:24 聊天室\classes\chat\client\ClientUI.java
文件 3764 2008-06-13 16:55 聊天室\classes\chat\client\Client.java
..A.SH. 9 2007-03-22 11:24 聊天室\classes\chat\client\_desktop.ini
文件 9456 2008-06-06 16:39 聊天室\classes\chat\client\EditToolBar.java
文件 2364 2008-05-28 08:49 聊天室\classes\chat\client\UDPClientModel.java
文件 2963 2008-06-13 17:23 聊天室\classes\chat\client\UDPClient.java
文件 2129 2008-06-13 17:23 聊天室\classes\chat\client\LogonPane.java
..A.SH. 9 2007-03-22 11:24 聊天室\classes\chat\server\_desktop.ini
文件 8757 2008-06-13 16:34 聊天室\classes\chat\server\ServerModel.java
文件 9481 2008-06-13 17:23 聊天室\classes\chat\server\Server.java
文件 8128 2007-01-19 20:46 聊天室\classes\chat\task\SpringUtilities.java
..A.SH. 9 2007-03-22 11:24 聊天室\classes\chat\task\_desktop.ini
文件 1141 2008-06-02 21:19 聊天室\classes\chat\task\Information.java
文件 3148 2008-06-06 16:21 聊天室\classes\chat\task\Setting.java
文件 1098 2008-06-13 17:15 聊天室\classes\chat\task\Receiver.java
文件 822 2008-06-13 17:17 聊天室\classes\chat\task\Sender.java
文件 21425 2008-06-02 10:24 聊天室\jar\server1.1.jar
文件 36475 2008-06-02 10:41 聊天室\jar\client1.1.jar
文件 4179 2008-06-02 22:20 聊天室\src\client\ClientModel.java
文件 8875 2008-06-06 16:24 聊天室\src\client\ClientUI.java
文件 3764 2008-06-13 16:55 聊天室\src\client\Client.java
..A.SH. 9 2007-03-22 11:24 聊天室\src\client\_desktop.ini
文件 9456 2008-06-06 16:39 聊天室\src\client\EditToolBar.java
文件 2364 2008-05-28 08:49 聊天室\src\client\UDPClientModel.java
文件 2963 2008-06-13 17:23 聊天室\src\client\UDPClient.java
文件 2129 2008-06-13 17:23 聊天室\src\client\LogonPane.java
..A.SH. 9 2007-03-22 11:24 聊天室\src\server\_desktop.ini
文件 8757 2008-06-13 16:34 聊天室\src\server\ServerModel.java
文件 9481 2008-06-13 17:23 聊天室\src\server\Server.java
............此处省略20个文件信息
- 上一篇:Java的循环单链表及其测试程序
- 下一篇:软院javaee学习笔记有部分代码
相关资源
- 软院javaee学习笔记有部分代码
- Java的循环单链表及其测试程序
- java基于c/s的图书管理系统
- java的MP3播放插件
- java大文件上传至ftp服务器带进度条显
- alipay-sdk-java20151021120052.jar
- java科学计算器源码及课设报告
- 五子棋 java版 博弈算法
- Java 数据库:宠物商店项目
- Java实验一.docx
- 文字统计系统.zip
- zw_huangyx123456-10303904-基于Java的迷宫程
- 工资管理系统.zip
- 基于java-web的超市管理系统毕业答辩
- JAVA介绍外文翻译
- 汪文君java高并发及java8新特性全套教
- 学生管理系统Javaweb mysql
- 基于Java网络聊天室
- 1. 编写一个 Java 程序 在程序中建立一
- java+SQlserver煤气公司管理系统
- java 学生成绩管理系统 课设论文
- Java课程设计报告-酒店客房管理系统
- 坦克大战Java+实训报告
- java鼠标瞄准炮台打鸟游戏
- zw_mysql-connector-java-5.1.7-bin.zip
- Java计算器130031
- 用JavaSE编写的购物系统
- 学生成绩管理系统java.zip
- 图书管理系统源代码(java实现.docx
- 2019年Java题库学生版.pdf
评论
共有 条评论