java课程设计报告-聊天室

2019-01-07 16:37

JAVA程序设计

课程设计报告

班级: 计0902 学号: 12 姓名: 李兴华 指导教师: 蔚承建

完成日期:2010-12-26

课 程 设 计 报 告 书 专 用 纸

一: 题目内容的描述

本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。在编程我们使用的java语言,是目前比较流行的编程语言。在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。

二: 需求分析

1.1 开发背景:

在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识. 1.1

功能要求:

(1)登录功能.

(2)客户可以通过服务器转发,实现一对一和多对多聊天. (3)实现呼叫功能.

(4)客户端程序应该可以实时显示目前其它用户的状态.

三: 主要模块的算法描述

? 聊天室服务器端设计: JFrame ActionListener ChatServer -port:public static in -serverSocket:ServerSocket -messageShow:JTextArea -userLinkList:UserLinkList -showStatus:JTextField + ChatServer():public +init():public void +startService():public void +stopService():public void +sendStopToAll():public void +sendMsgToAll(String):public void + sendSystemMessage():public void Thread ServerListen - server: ServerSocket - userLinkList :UserLinkList - isStop: public Boolean +ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList) ServerReceive -textarea:JTextArea - userLinkList :UserLinkList - isStop: public Boolean +ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList) 第 1 页 共 18 页

课 程 设 计 报 告 书 专 用 纸

? 聊天室客户端设计: ActionListener JFrame ChatClient -port:public static in -serverSocket:ServerSocket -messageShow:JTextArea -userLinkList:UserLinkList -showStatus:JTextField + ChatClient():public +init():public void +Connect():public void +DisConnect():public void +SendMessage():public void Thread ClientReceive - socket: Socket -output:ObjectOutputStream -input:ObjectInputStream +ClientReceive(Socket,ObjectOutputStream,ObjectInputStream,JComboBox,JTextArea,JTextField ) 四: 详细设计

? 聊天室服务器端设计:

聊天室服务端主要包括7个文件,它们的功能如下:

(1)ChatServer.java:包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用ServerListen类来实现服务端用户上线与下线的侦听,调用ServerReceive类来实现服务器端的消息的收发。

import java.awt.*;

import java.awt.event.*; import javax.swing.*;

import javax.swing.event.*; import java.net.*; import java.io.*; /*

* 聊天服务端的主框架类

*/

public class ChatServer extends JFrame implements ActionListener{

public static int port = 8888;//服务端的侦听端口 ServerSocket serverSocket;//服务端Socket Image icon;//程序图标

JComboBox combobox;//选择发送消息的接受者

第 2 页 共 18 页

课 程 设 计 报 告 书 专 用 纸

//建立菜单栏

JMenuBar jMenuBar = new JMenuBar(); //建立菜单组

JMenu serviceMenu = new JMenu (\服务(V)\//建立菜单项

JMenuItem portItem = new JMenuItem (\端口设置(P)\JMenuItem startItem = new JMenuItem (\启动服务(S)\ImageIcon(\JMenuItem stopItem=new JMenuItem (\停止服务(T)\JMenuItem

exitItem=new

JMenuItem

(\

退

(X)\

JTextArea messageShow;//服务端的信息显示

JScrollPane messageScrollPane;//信息显示的滚动条 JTextField showStatus;//显示用户连接状态 JLabel sendToLabel,messageLabel;

JTextField sysMessage;//服务端消息的发送 JButton sysMessageButton;//服务端消息的发送按钮 UserLinkList userLinkList;//用户链表

ImageIcon(\ImageIcon(\

//框架的大小

Dimension faceSize = new Dimension(400, 600); ServerListen listenThread; JPanel downPanel ;

GridBagLayout girdBag;

GridBagConstraints girdBagCon; /**

* 服务端构造函数 */

public ChatServer(){ init();//初始化程序

//添加框架的关闭事件处理 //建立工具栏

JToolBar toolBar = new JToolBar(); //建立工具栏中的按钮组件

JButton portSet;//启动服务端侦听

JButton startServer;//启动服务端侦听 JButton stopServer;//关闭服务端侦听 JButton exitButton;//退出按钮

JMenu helpMenu=new JMenu (\帮助(H)\JMenuItem helpItem=new JMenuItem (\帮助(H)\ImageIcon(\

第 3 页 共 18 页

课 程 设 计 报 告 书 专 用 纸

//设置运行时窗口的位置

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2, (int) (screenSize.height - faceSize.getHeight()) / 2); this.setResizable(false);

this.setTitle(\聊天室服务端\设置标题 //为服务菜单栏设置热键'V' serviceMenu.setMnemonic('V'); //为端口设置快捷键为ctrl+p portItem.setMnemonic ('P'); portItem.setAccelerator

(KeyStroke.getKeyStroke

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack();

//设置框架的大小

this.setSize(faceSize); this.setVisible(true);

(KeyEvent.VK_P,InputEvent.CTRL_MASK));

//为启动服务快捷键为ctrl+s startItem.setMnemonic ('S'); startItem.setAccelerator

(KeyStroke.getKeyStroke

(KeyEvent.VK_S,InputEvent.CTRL_MASK));

//为端口设置快捷键为ctrl+T stopItem.setMnemonic ('T');

(KeyStroke.getKeyStroke

stopItem.setAccelerator

(KeyEvent.VK_T,InputEvent.CTRL_MASK)); //为退出设置快捷键为ctrl+x

exitItem.setMnemonic ('X');

exitItem.setAccelerator

(KeyEvent.VK_X,InputEvent.CTRL_MASK)); //为帮助菜单栏设置热键'H'

helpMenu.setMnemonic('H'); //为帮助设置快捷键为ctrl+p helpItem.setMnemonic ('H'); helpItem.setAccelerator

(KeyStroke.getKeyStroke

(KeyStroke.getKeyStroke

(KeyEvent.VK_H,InputEvent.CTRL_MASK));

}

第 4 页 共 18 页


java课程设计报告-聊天室.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高效课堂 - 语文教学的必由之路

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: