第2篇 实现一个即时通信程序

第2篇 实现一个即时通信程序

本篇通过实现一个即时通信程序来学习Java SE主要类库的使用。实现的即时通信程序的总体需求如下。

(1)用户注册:用户以用户名和密码注册账号(如图2.0.1所示)。

总体需求

图2.0.1 用户注册界面

(2)用户登录和聊天:第一,可用注册账号登录。如果登录失败,则会出现错误提示窗,提示重新登录(如图2.0.2所示)。第二,如果登录成功,则打开聊天窗口(如图2.0.3所示)。窗口标题是当前用户名,窗口上端是当前在线用户下拉列表,下拉列表中包含除了当前用户外的所有其他在线用户名,在下拉列表中选中的用户名即是当前用户聊天的对象。在下端的输入框中输入信息,单击回车键或者鼠标单击发送按钮,信息会出现在中间的聊天历史框中(如图2.0.4所示),并且发送给下拉列表中选中的在线用户,信息会出现在对方的聊天历史框中(如图2.0.5)。第三,可以有多于2个的用户在线,并可以向任意指定的在线用户发送信息。

图2.0.2 用户登录错误界面

图2.0.3 用户聊天界面

图2.0.4 peterli与lilywang的对话界面

图2.0.5 lilywang与peterli的对话界面

(3)登录成功时,如果之前在本机有过聊天历史,则首先将之前的聊天历史显示在聊天历史框中。

(4)当用户关闭窗口下线时,其他在线用户的聊天界面下拉列表中将去掉此下线用户名。

当有新用户上线时,所有已经在线用户的聊天界面下拉列表中会增加此新上线用户名。新上线用户的聊天界面下拉列表中会有所有已经在线的用户名。