77范文网 - 专业文章范例文档资料分享平台

基于Java技术的即时聊天系统实现(2)

来源:网络收集 时间:2019-03-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

商丘师范学院2015届本科毕业论文(设计)

图4- 1系统功能模块图

4.2 数据库设计

通过用户的注册,聊天等形成初步的数据需求;对数据需求进行概念上的设计,得到对应的E-R图;其次选择合适的方法,将E-R图转化为关系模型;然后对关系模型进行物理设计[4]。

1. E-R图设计:分析确定各个数据表的字段、数据类型、关系等,画出E-R图。

图4- 2用户属性

3

商丘师范学院2015届本科毕业论文(设计)

图4- 3好友属性

图4- 4历史记录属性

2. 物理设计:根据系统的数据类型,我们可以选择为数据库表中字段最合适的数据类型,字段大小,索引结构等[5]。

表4- 1用户信息表

序列号 1 2 3 4 5 6 7 字段 id name zhanghao password sex birthday address 描述 用户编号 用户名 用户帐号 用户密码 性别 出生年月 地址 类型 int(11) varchar(16) varchar(11) varchar(32) varchar(2) varchar(32) varchar(32) 空 否 否 否 否 否 否 否 额外 主键(自增) 唯一 表4- 2好友信息表

序列号 1 2 3 4

字段 id zhanghao friendId blackname 描述 编号 用户帐号 好友帐号 黑名单 类型 int(11) varchar(11) varchar(255) varchar(255) 空 否 否 额外 主键(自增) 外键 表4- 3历史记录表

序列号 1 2 字段 id zhanghao 描述 编号 用户帐号 4

类型 int(11) varchar(32) 空 否 否 额外 主键(自增)

商丘师范学院2015届本科毕业论文(设计)

3 4 5 6 7

who sendtime font record pic 属于者 发送时间 字体类型 发送类容 表情 varchar(11) varchar(32) varchar(64) varchar(255) varchar(255) 否 否 否 否 外键 5 系统详细设计与实现

编码阶段是将软件设计阶段的各种描述转变成程序代码,在编码阶段应该注意编程语言的选择,在本次课题中,我们使用的是Java语言。

5.1 界面设计

软件界面的设计是非常重要的,对于各个模块采用不同的组件进行设计。下面简单的介绍下如何设计软件的界面。 5.1.1 登录界面

本即时聊天系统的登录界面(图:3-5),采用JFram容器,使用默认布局,通过setBounds()方法自定义位置。上部是一个JPanel,内置一个JLabel;中间是根据需要放置JLabel、JTExtField、JPasswordField;最下方放置一个JButton。具体代码如下:

Sjp1_jbl=new JLabel(new ImageIcon(\Sjbl1=new JLabel(\Sjtf=new JTextField();Sjtf.setBounds(110, 163, 130, 30); Sjbl2=new JLabel(\Sjbl3=new JLabel(\Sjpf=new JPasswordField();Sjpf.setBounds(110, 200, 130, 30); Sjbl4=new JLabel(\Sjp3_jb1=new JButton(new ImageIcon(\ Sjp3_jb1.setBounds(85, 270, 195, 30);

图5- 1登录界面

5.1.2 注册界面 在注册界面(3-6)中同样采用默认布局自定义位置。对于JLabel、JTExtField、JPasswordField如何放置就不讲太多了,在这里主要讲下新引入的知识点HashMap集合和Graphics绘画技术。

HashMap是集合类,我们可以通过put、get方法向其中添值、取值,其最重要的一点

5

商丘师范学院2015届本科毕业论文(设计)

是它是键值对形式的,通过一个键就能取出相应的值,对于本界面的全国省市联动,正好可以用到地址的灵活变动。通过For循环创建每个省份按钮,并添加addActionListener监听器,获取其对应省份代号,再通过get方法向HashMap索要其对应的ID值。代码如下: 添加:

HashMap hm=new HashMap<>();

FOR(INT i=0;i

if(hm.containsKey(s)){RegisterAddress Address=(RegisterAddress) hm.get(s); System.arraycopy(Address.getCity(), 0, City, 0, Address.getCity().length); for(int i=0;i

} } Graphics可以对其进行重写,调用其方法进行绘画,对于本界面中的验证码,正是运用到此类,可以根据自己想要的样式进行绘制。代码如下: StringBuffer randomRecv = new StringBuffer();

FOR (INT i = 0; i

String stm = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]); red = random.nextInt(255);green = random.nextInt(255);

blue = random.nextInt(255);g.drawString(stm, (i + 1) * X, CodeY); }

code= randomRecv.toString();

图5- 2注册界面

5.1.3 修改密码界面 密码修改界面(图3-7)是一个重要的组成部分,用户在此能够进行密码修改、重置密码;在本界面中同样的运用到以上界面的基本布局界面的组件,同样的引入了新的组件JTabbedPane。

6

商丘师范学院2015届本科毕业论文(设计)

JTabbedpane提供add方法允许设计者向其中添加标题,通过添加addChangeListener监视器,当触发时候进行页面的跳转。从密码修改界面能够开出它拥有两个界面提供用户使用。代码如下:

Sjp0=new JPanel();Sjp0.setLayout(null); Sjp1=new JPanel();Sjp1.setLayout(null);

Sjtp=new JTabbedPane();Sjtp.add(\修改密码\忘记密码\

图5- 3密码修改界面

5.1.4 好友列表界面

在好友列表界面(图3-8)中,引入一个新的组件JTree。JTree是树形组件,能够添加删除子节点,子节点同样能够添加子节点。JTree是许多初学者在做类似系统软件的首选,对于Java默认的Tree节点、把柄的图标是不美观的,我们需要对其进行重写。代码如下: tree.setCellRenderer(new DefaultTreeCellRenderer() {

public getStreeRendererComponent(JTree stree,string val,boolean bool, int cow, boolean havefoc) { if (leaf) {this.setIcon(title);

this.setClosedIcon(close) }return this; }});

7

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于Java技术的即时聊天系统实现(2)在线全文阅读。

基于Java技术的即时聊天系统实现(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/505222.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: