论坛首页 编程语言技术论坛

JavaSE版QQ设计文档

浏览 3497 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-02-05  

一、背景描述

 

完成网络、线程、IO后,可以开始部署该项目。

 

二、二、实现要求

 

模仿QQ,实现简单的qq功能:注册、登陆、查找好友、聊天功能。服务端还需实现配置文件设置、用户管理、日志显示的功能。

 

三、三、实现技术

 

a)         使用多线程进行多个客户端和服务端的连接。

 

b)        使用文件方式保存用户信息。

 

c)         使用对象的方式在服务端和客户端之间传递信息。

 

d)        熟练使用JTableJListmodelCellRendener等模型。

 

四、四、类图

 

a)类图

 

a)         b)类图说明

 

类名称

JQServer

类描述

服务端主程序类。

包描述

server

函数描述

public static void main(String[] args)

加载字体,弹出程序界面。

 

 

 

类名称

Server

类描述

JavaQQ服务端类。

完成的功能:1.系统服务

2.系统配置

3.用户管理

4.在线用户

5.日志管理

6.关于

包描述

server.frm

函数描述

public Server()

JavaQQ服务端类。

public void stateChanged(ChangeEvent e)

选项卡面板修改时触发事件。

 

 

 

类名称

ConfigPane

类描述

系统配置类。

完成的功能:1.端口配置。

2.要屏蔽的JQ

3.生成的JQ号的位数,最小位和最大位

4.是否自动备份日志、自动删除日志的天数

5.数据方式选择1.文件方式2.数据库方式(连接参数、用户名、密码、解码集)

包描述

server.frm.panes

函数描述

public ConfigPane(Properties prop)

系统配置面板构造函数。

private void init()

初始化面板。

public void actionPerformed(ActionEvent e)

保存按钮、回复缺省值按钮等的事件。

private void setDataWay(boolean b)

设置数据保存方式。

public void getProp(Properties prop) throws Exception

获取系统的配置文件

public void setProp() throws IOException

保存配置文件。

内部类

private class MyJLalel extends JLabel

根据需要定制的JLabel

public MyJLalel(String text,int width)

设置内容为text,宽度为width的一些已设置好的JLabel

public MyJLalel(String text)

设置内容为text,高度为20的一些已设置好的JLabel

内部类

private class MyJTextField extends JTextField

根据需要定制的JTextField

public MyJTextField()

缺省170宽的JTextField

public MyJTextField(int width)

设置指定宽度的JTextField

 

 

 

类名称

FillWidth

类描述

仅仅为了填充BorderLayout的宽度

包描述

server.frm.panes

函数描述

public FillWidth(int width,int height)

按照指定宽度和高度的JPanel

 

 

 

类名称

LogPane

类描述

日志显示类。

包描述

server.frm.panes

函数描述

public LogPane()

日志面板构造函数。

public JTextArea getAreaLog()

获取日志。

private void init()

初始化面板。

public void actionPerformed(ActionEvent e)

查看所有日志的事件。当前事件似乎未在Windows平台实现,其他平台未测试。Desktop类似乎未发生作用。

 

 

 

类名称

OnlinePane

类描述

在线用户面板。

包描述

server.frm.panes

函数描述

public OnlinePane()

在线用户面板构造函数。

private void init()

初始化添加组件。

public void actionPerformed(ActionEvent e)

广播消息按钮、刷新按钮、查询按钮的事件。

public void run()

 

public void flushOnlineUser()

刷新当前在线用户。

private void QueryOnlineUser(String query,int type)

根据查询类型查询在线用户

private void addUserToTable(User user)

table中添加用户

内部类

private class QueryWay

查询方式。

内部类

private class MyDefaultTableModel extends DefaultTableModel

自己定制的DefaultTableModel

内部类

private class BroadcastWindow extends JDialog implements WindowFocusListener,ActionListener

广播窗体类。

 

 

 

类名称

ServecieProcessBar

类描述

来回滚动条类。

包描述

server.frm.panes

函数描述

public ServecieProcessBar(int width,int height)

按照指定的宽度和高度构造一个来回的滚动条。

public void actionPerformed(ActionEvent e)

来回滚动事件。

 

public void paint(Graphics g)

滚动条的绘制

 

public void startRoll()

开始滚动滚动条

 

public void stopRoll()

停止滚动滚动条。

 

 

 

类名称

ServicePane

类描述

系统服务面板类。

完成功能:系统的启动与停止

用户的连接日志显示。

包描述

server.frm.panes

函数描述

public ServicePane()

系统服务构造函数。

public void initProp()

初始化配置文件。

public void actionPerformed(ActionEvent e)

启动按钮、停止按钮的事件。

border-width: 0px 1pt 1pt 0px; border-style: none solid solid none; border-color: #000000 windowtext windowtext #000000; padding: 0cm 5.4pt; width: 189pt; b
  • 大小: 15 KB
  • 大小: 31.6 KB
  • 大小: 25.2 KB
   发表时间:2013-02-10  
类似的太多了。如果能直接把跨网段的语音视频通过java实现,会更好!
0 请登录后投票
论坛首页 编程语言技术版

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