学完Java基础,也来写个聊天的工具,给它起了个名:GG聊天(只是希望沾点光);
功能实现如下:
(1)动态请求服务器,登录会记住用户名的
(2)好友列表显示(在线的为彩色,离线的为灰色)
(3)聊天的字体可更改(富文本编辑),查看聊天记录,
(4)注册
(5)查找用户
(6)添加在线用户(别人添加你,可以拒绝的哦)
(7)DAO模块有MySql改为XML,只要启动服务器,不需要数据库也可玩玩看;
------
带几张截图,有兴趣的可以下载下去:
登录框(点击设置,可以设置服务器IP和端口):
注册:
注册是系统自动分配一个可用数字(看完要记住de,别忘了):
下面是登录后的UI(还没人上线的..):
这是聊天的窗口(可以设置字体--还可以发送抖动窗口的):
查看聊天的记录:
好友上线啦:
可以抖他的聊天窗口的:
查找好友的:
---------------------------------
下面,奉上核心代码:
服务器的控制中心(没有采用ChannelSocket,用户太少啦,另一个版本使用那个的,有兴趣的我可以把那部分代码发给你。)
try {
while (start) {
final Message message = (Message) ois.readObject();
new Thread() {
@Override
public void run() {
String action = message.getAction();
ServerUI.setMessage("@server: " + action);
try {
ServicesCache.get(
Configuration.getClassName(action))
.execute(ServiceThread.this, oos, message);
} catch (Exception e1) {
System.err.println("catch error");
try {
Class<?> ac = Configuration.getClazz(action);
ac.getMethod("execute",
ServiceThread.class,
ObjectOutputStream.class,
Message.class).invoke(
ac.newInstance(),
ServiceThread.this, oos,
message);
} catch (Exception e) {
start = false;
e.printStackTrace();
}
}
}
}.start();
}
} catch (Exception e) {
start = false;
ServerUI.setMessage("用户断开连接!");
} finally {
}
------------------
控制中心的标准:
public abstract class ActionSupport {
private final UserDao dao = new UserDaoXMLImpl();
protected final UserDao getDao() {
return dao;
}
public abstract String execute(ServiceThread service, ObjectOutputStream oos,
Message message) throws Exception;
}
------------------
哦,我忘了,还有一个可爱的系统托盘:
在附上服务器的UI:
下面就是源码啦,无私奉献
- 大小: 29.4 KB
- 大小: 42.9 KB
- 大小: 31.5 KB
- 大小: 35.9 KB
- 大小: 29.6 KB
- 大小: 32 KB
- 大小: 3.5 KB
- 大小: 49.7 KB
- 大小: 25 KB
- 大小: 1.7 KB
- 大小: 32.6 KB
分享到:
相关推荐
赠送jar包:javase-2.2.jar; 赠送原API文档:javase-2.2-javadoc.jar; 赠送源代码:javase-2.2-sources.jar; 赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文...
赠送jar包:javase-3.3.3.jar; 赠送原API文档:javase-3.3.3-javadoc.jar; 赠送源代码:javase-3.3.3-sources.jar; 赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API...
本文将深入探讨在给定的压缩包中涉及的几个关键组件:`core-3.3.3`, `javase-3.3.3`, `zxing-1.7-core` 和 `zxing-j2se-1.7`,以及与之相关的JDK版本,包括JDK1.7和JDK1.8。这些组件主要用于二维码生成和处理,对于...
由于公司外网限制。需要的朋友可以搜索NetBeans-7.4-JavaSE-Windows。一起两个分卷。(仅Java)
赠送jar包:javase-3.3.3.jar; 赠送原API文档:javase-3.3.3-javadoc.jar; 赠送源代码:javase-3.3.3-sources.jar; 赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API...
netbeans-6.9.1-ml-javase-windows 第一个包,分三个包
netbeans-7.4-javase-windows
这两个资源包,`javase-3.2.1.jar` 和 `zxing-core-3.2.1.jar`,是开发Java应用程序时用于生成和解析一维码与二维码的关键组件。 `javase-3.2.1.jar` 是一个针对Java Standard Edition(Java SE)平台的特定版本库...
赠送jar包:javase-2.2.jar; 赠送原API文档:javase-2.2-javadoc.jar; 赠送源代码:javase-2.2-sources.jar; 赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文...
1. 引入库:首先需要在项目中引入javase-3.3.0.jar作为依赖,这通常通过构建工具如Maven或Gradle来完成,或者手动将jar文件添加到项目的类路径中。 2. 导入类:在代码中,需要导入`MatrixToImageWriter`类以及可能...
Google 二维码生成识别 xzing javase-2.1 适用于jkd1.6
描述“netbeans-7.3-javase-windows”简洁明了,强调了这是适用于Windows平台的Java SE开发工具。这意味着用户可以在Windows操作系统上利用这个IDE进行Java应用程序的开发,包括桌面应用、Web应用或移动应用(使用...
在你提到的"zxing-3.1.0.jar"和"zxing-javase-3.1.0.jar"这两个文件中,我们主要关注的是Java版本的ZXing库。 `zxing-3.1.0.jar` 是核心库,包含了ZXing的主要功能,如解码和编码各种条码格式。这个库可以独立使用...
zxing2.2版本jar包,分别是core-2.2.jar和javase-2.2.jar,java生成二维码的两个jar,core为二维码生成包,javase为java文件什么的工具类包。支持jdk 1.6 亲身测试
`javase-3.3.3.jar`是ZXing为Java标准版(Java SE)提供的扩展,它包含了一些额外的功能,专门针对桌面环境。这个包提供了对Java AWT和Swing的支持,使得开发者能够更轻松地创建用户界面来显示和捕获条码图像。例如...
在给定的文件中,“zxing-3.1.0.jar”和“zxing-javase-3.1.0.jar”是ZXing库的两个不同版本,用于Java平台。下面我们将详细探讨这两个文件以及与二维码相关的知识点。 1. **ZXing库介绍** ZXing,中文名斑马线,...
使用java在服务端进行aes的加密解密,前端使用该js进行aes加密解密;
JavaSE--API.md
ZXing支持多种语言,其中包括Java,这也是我们讨论的`zxing-core-3.2.2`和`zxing-javase-3.2.1`这两个jar包的核心所在。 `zxing-core-3.2.2.jar`是ZXing的主要库,包含了处理条码和二维码解码的所有核心算法和数据...
zxing二维码解析过程中,解决BufferedImageLuminanceSource 报错,解决 import com.google.zxing.client.j2se.BufferedImageLuminanceSource;错误的问题。zxing-master-3.4.1 版本编译而来,已经亲自测试验证。