学完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...
由于公司外网限制。需要的朋友可以搜索NetBeans-7.4-JavaSE-Windows。一起两个分卷。(仅Java)
谷歌二维码jar包(zxing-3.3.2 && zxing-core.2.1 && zxing-javase-2.1)
该资源提供两个iReport 生成二维码必须的包core javase,其中包含JDK1.7 版本 及JDK1.8版本
赠送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 第一个包,分三个包
一维码二维码所需资源jar包,包含javase-3.2.1.jar 和 zxing-core-3.2.1.jar
赠送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文档-中文...
netbeans-7.3-javase-windows
Google 二维码生成识别 xzing javase-2.1 适用于jkd1.6
netbeans-7.4-javase-windows 适用于javase 可以开发基于windows系统的企业级的窗口程序软件 比如ERP CRM 使用技术 Swing 使用于企业级的图形化窗口程序 类似.NET的winform
JavaSE--思维导图解析
zxing2.2版本jar包,分别是core-2.2.jar和javase-2.2.jar,java生成二维码的两个jar,core为二维码生成包,javase为java文件什么的工具类包。支持jdk 1.6 亲身测试
netbeans-7.4-javase-windows
谷歌二维码生成工具包,MatrixToImageWriter.writeToPath()方法,2的版本木有
使用java在服务端进行aes的加密解密,前端使用该js进行aes加密解密;
谷歌二维码生成工具包,MatrixToImageWriter.writeToPath()方法,2的版本木有
zxing-core-3.2.2 zxing-javase-3.2.1 两个jar包下载。
JavaSE--API.md