论坛首页 综合技术论坛

javase-富文本聊天工具

浏览 22984 次
精华帖 (0) :: 良好帖 (7) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-25   最后修改:2012-03-03
学完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
   发表时间:2012-02-27  
果断新手帖
0 请登录后投票
   发表时间:2012-02-27  
爪哇岛岛主 写道
果断新手帖

代码我没来得及看,楼主你写得出来吗?喷子真多
0 请登录后投票
   发表时间:2012-02-27  
mtsw2011 写道
爪哇岛岛主 写道
果断新手帖

代码我没来得及看,楼主你写得出来吗?喷子真多

一看写聊天功能的,大部分就是新手,人家里面也说了,学完java基础写的,2L看来没错。不过语气有些……
0 请登录后投票
   发表时间:2012-02-27  
好像还不错!嘿嘿。楼主继续加油啊,还有version 2.0 么?
0 请登录后投票
   发表时间:2012-02-27  
支持楼主,  做为学习交流,还是很有用的.
0 请登录后投票
   发表时间:2012-02-27  
支持swing 看看Iteye都吧swing这个论坛关掉了, 来了新人应该支持
1 请登录后投票
   发表时间:2012-02-27  
这个兴趣要保持.......其他不多说
0 请登录后投票
   发表时间:2012-02-27  
只想说2楼人品不好
0 请登录后投票
   发表时间:2012-02-27  
xx0326 写道
好像还不错!嘿嘿。楼主继续加油啊,还有version 2.0 么?

这个有的,也写好了,这个版本的的功能和前面都一样,只是实现不一样了,
采用的是ChannelSocket,服务器不用保持和客户端的连接状态,
只需要启动一个线程就可以管理连上来的客户端了。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics