ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:22.67KB ,
资源ID:25584858      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25584858.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java聊天室系统项目设计书.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java聊天室系统项目设计书.docx

1、Java聊天室系统项目设计书Java聊天室系统项目设计书第一部分 项目概况1.项目说明项目名称:JAVA聊天室系统。客 户:一般大众。2、项目背景NIIT的课程重在对实际动手能力的培养。通过一段时间JAVA课程的学习,需要对所学的知识作一个综合的运用。由于JAVA强大的网络编程能力,需要写一个简单的聊天室程序的项目,主要能实现在网络上的多线程间的通讯。项目的目的在于巩固前段时间所学的知识以及锻炼小组成员之间团队合作的能力。第二部分 项目计划1. 项目目标1,允许新用户注册,同时开设。2,登陆后在用户列表框显示所有的用户。3,允许用户进行在线的公聊和私聊。4,把客户端的界面放在Applet上面,

2、在聊天时可以对面版进行一些简单设置。2. 项目围本软件适用于一般大众。3. 项目策略通过可视化编程的JAVA程序的方式进行实现。 通过增量开发的方法进行此项目的设计与开发。使用套节字进行客户与服务端的通讯。4项目开发周期第一天 需求分析及初步设计阶段决定每个功能所需的类及数据类型第二天 根据相应功能设计出各类所用到的方法及数据类型第三天第五天 具体实现各个类中的各个方法第六天 对各个界面和服务器进行调整及测试完善工作5. 每项任务所需技能服务端与客户端的连接:网络编程中的协议及数据流,异常处理,多线程。程序界面设计:GUI图形用户组件,布局管理,事件监听。代码实现:JAVA与数据库编程。6.

3、所采用的工具开发工具:Microsoft JAVALEjdk1.4+ JCreator LE开发环境:windowsXP+个人电脑第三部分 项目设计1.需求分析随着经济的日益发展,网络的观念深入人心。人们越来越需要通过网络高效简捷的交流,聊天室就是其中的一个工具。2.软件主要功能1,允许新用户注册,同时开设。2,登陆后在用户列表框显示所有的用户。3,允许用户进行在线的公聊和私聊。4,把客户端的界面放在Applet上面,在聊天时可以对面版进行一些简单设置。程序中要用到的类1、客户端 2、服务器端3概要设计 聊天室的程序至少需要建立两个程序:一个服务器端,负责监听客户端发送过来的请求,一但监听到客

4、户端的请求,先判断它是登陆信息还是聊天信息,若是登陆信息,那么允许客户端登陆,并把登陆的客户名返回给客户端显示在用户在线列表框。如果是聊天信息,则把它群发给每个客户端。服务器端不对聊天的信息作公聊和私聊的判断,由客户端收到消息后判断是否是发给自己的信息,以及是否显示在聊天面板上面。客户端的程序需要运用图形化编程做出一个界面。我们小组所做的界面是在聊天室界面的左上方为一个在线用户列表框,列表框的下面有用户登陆的文本域和密码输入框。右边是聊天面板,聊天面板的下面是输入聊天信息的文本域,以及发送和清空按纽。当输入用户名和密码登陆后,在用户列表框会显示当前在线的所有的用户并且在聊天面板上显示某用户进入

5、了聊天室。然后屏蔽掉登陆和密码输入框。在信息输入框中输入聊天信息后点击发送,在所有客户端的聊天面板上会看到你发送的聊天信息。在用户列表框选择某个用户,勾选私聊复选框然后发送消息,这时只有被你选择的客户端能看到你发送的信息。4 详细设计服务器端代码:/聊天室服务器端程序import java.io.*;import .*;import java.util.*;public class Homework implements Runnable Thread thread; static Vector vector; ServerSocket server; public Homework try

6、server=new ServerSocket; System.out.println; catch vector=new Vector; thread=new Thread; thread.start; public void run try while Socket socket=server.accept; PThread pt=new PThread; pt.setPriority; pt.start; vector.addElement; catch public static void main new Homework; synchronized public void broa

7、dcast PThread cg; String user; ifname.startsWith forint i=0;ivector.size;i+ cg=vector.elementAt; try cg.dout.writeUTF; catch else ifname.startsWith System.out.printlnname.substring; forint i=0;ivector.size;i+ cg=vector.elementAt; try cg.dout.writeUTF; catch else ifname.startsWith System.out.printlnn

8、ame.substring; forint i=0;ivector.size;i+ cg=vector.elementAt; try cg.dout.writeUTF; catch /class PThread extends Thread protected Socket socket; protected Homework home; protected DataInputStream din; protected DataOutputStream dout; String message,message1; PThread cg; public PThread this.socket=s

9、ocket; this.home=home; try din=new DataInputStreamsocket.getInputStream; dout=new DataOutputStreamsocket.getOutputStream; catch public void run try while message1=din.readUTF; ifmessage1.startsWith message=message1.substring5,message1.indexOf+1; if forint i=0;ihome.vector.size;i+ cg=home.vector.elem

10、entAt; dout.writeUTF; home.broadcast; System.out.println; ifmessage1.startsWith message=message1.substring6,message1.indexOf; if forint i=0;ihome.vector.size;i+ cg=home.vector.elementAt; / dout.writeUTF; home.broadcast; ifmessage1.startsWith message=message1.substring7,message1.indexOf; if forint i=

11、0;ihome.vector.size;i+ cg=home.vector.elementAt; / dout.writeUTF; home.broadcast; catch 客户端代码:/聊天室客户端程序import java.awt.*;import java.applet.Applet;import java.applet.AudioClip;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Date;import .*; public class Homework_client1

12、 extends Applet implements Runnable List UesrNameList; /显示用户名的列表; TextArea Text_Area; /显示用户发言的文本域; JLabel UserName; /显示用户; JLabel UName; /用户面板; JLabel PassWord; /显示登陆口令; TextField PWord; /登陆口令文本框; TextField UN; /用户文本框; JTextField forField; /说文本框; JTextField Sayfield; /发送文本框; JLabel Vslabel; /对面板; JL

13、abel Saylabel; /说面板; JLabel Frontlabel; /前景色面板; JLabel Backlabel; /背景色面板; JLabel Stylelabel; /字体面板; JLabel Wordlabel; /字号面板; JButton Enterbutton; /进入按纽; JButton Quitbutton; /退出按纽; JButton Sendbutton; /发送按纽; JButton Canecelbutton; /刷新按纽; Checkbox Quient; /私聊复选框; Choice C_style; /字体选择框; Choice C_word;

14、 /字号选择框; Choice C_front; /前景色选择框; Choice C_back; /背景色选择框; Choice C_music; /音乐选择框; AudioClip Sound; /音乐播放器; JMenuItem Play; /play; JMenuItem Loop; /loop; JMenuItem Stop; /stop; JMenu Start; /播放器菜单; JMenuBar SoundBar; /加载播放菜单; Socket socket; /客户端; Thread Cthread=new Thread; DataInputStream din; /数据输入流

15、; DataOutputStream dout; /数据输出流; /*面板的编写*/ public void init /*定义左边的组件*/ /*将左边组件进行网格包布局,并添加到面板*/ Thread Cthread; /创建一个和客户端进行通信的线程; UesrNameList=new List; UesrNameList.setBackground; UesrNameList.setForegroundnew Color; UesrNameList.setFontnew Font; UserName=new JLabel; UserName.setFontnew Font; UName

16、=new JLabel; UN=new TextField; UN.setFontnew Font; PassWord=new JLabel; PWord=new TextField; PWord.setEchoChar; Enterbutton=new JButton; Enterbutton.setBackgroundnew Color; Enterbutton.setToolTipText; Quitbutton=new JButton; Quitbutton.setToolTipText; Quitbutton.setEnabled; Quitbutton.setBackgroundn

17、ew Color; C_music=new Choice; /初始化音乐控件; C_music.add; C_music.add; SoundBar=new JMenuBar; SoundBar.setBackgroundnew Color; Start=new JMenu; Start.setBackgroundnew Color; Play=new JMenuItem; Loop=new JMenuItem; Stop=new JMenuItem; Start.add; Start.add; Start.add; SoundBar.add; Sound=getAudioClipgetCod

18、eBase,遇见.mid; JPanel panel_0=new JPanel; panel_0.setBackgroundnew Color; GridBagLayout gb_0=new GridBagLayout; GridBagConstraints gc_0=new GridBagConstraints; gc_0.fill=GridBagConstraints.NONE; gc_0.weightx=0.0; gc_0.weighty=0.0; gb_0.setConstraints; gb_0.setConstraints; panel_0.setLayout; panel_0.a

19、dd; panel_0.add; JPanel panel_1=new JPanel; panel_1.setBackgroundnew Color; panel_1.add; panel_1.add; JPanel panel_2=new JPanel; panel_2.setBackgroundnew Color; panel_2.add; panel_2.add; JPanel panel_3=new JPanel; panel_3.setBackgroundnew Color; panel_3.add; panel_3.add; JPanel NO1panel=new JPanel;

20、NO1panel.setBackgroundnew Color; GridBagLayout gb_1=new GridBagLayout; GridBagConstraints gc_1=new GridBagConstraints; gc_1.anchor=GridBagConstraints.NORTHWEST; gc_1.gridx=0; gc_1.gridy=0; gb_1.setConstraints; gc_1.anchor=GridBagConstraints.NORTHWEST; gc_1.gridx=0; gc_1.gridy=1; gb_1.setConstraints;

21、 gc_1.anchor=GridBagConstraints.NORTHWEST; gc_1.gridx=0; gc_1.gridy=2; gb_1.setConstraints; gc_1.anchor=GridBagConstraints.NORTHWEST; gc_1.gridx=0; gc_1.gridy=3; gb_1.setConstraints; gc_1.anchor=GridBagConstraints.NORTHWEST; gc_1.gridx=0; gc_1.gridy=4; gb_1.setConstraints; gc_1.anchor=GridBagConstra

22、ints.NORTHWEST; gc_1.gridx=0; gc_1.gridy=5; gb_1.setConstraints; NO1panel.setLayout; NO1panel.add; NO1panel.add; NO1panel.add; NO1panel.add; NO1panel.add; NO1panel.add; /*定义右下方中间的组件*/ Quient=new Checkbox; Quient.setBackgroundnew Color; Quient.setSize; Vslabel=new JLabel; Vslabel.setSize; forField=ne

23、w JTextField; forField.setEditable; Saylabel=new JLabel; Saylabel.setSize; Sayfield=new JTextField; Sayfield.setFontnew Font; Sayfield.setEditable; Sendbutton=new JButton; Sendbutton.setEnabled; Sendbutton.setBackgroundnew Color; /*定义右下方下层组件*/ Stylelabel=new JLabel; Stylelabel.setSize; Wordlabel=new

24、 JLabel; Wordlabel.setSize; Frontlabel=new JLabel; Frontlabel.setSize; Backlabel=new JLabel; Backlabel.setSize; Canecelbutton=new JButton; Canecelbutton.setBackgroundnew Color; C_style=new Choice; /字体选择框 C_style.addItem; C_style.addItem; C_style.addItem; C_word=new Choice; /表情选择框 C_word.setSize; C_word.addItem; C_word.add

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1