您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > java课程设计报告-聊天室
JAVA程序设计课程设计报告班级:(4号楷体)学号:(4号楷体)姓名:(4号楷体)指导教师:(4号楷体)完成日期:2009年9月(4号楷体)课程设计报告书专用纸第1页共18页一:题目内容的描述本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。在编程我们使用的java语言,是目前比较流行的编程语言。在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。二:需求分析1.1开发背景:在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识.1.1功能要求:(1)登录功能.(2)客户可以通过服务器转发,实现一对一和多对多聊天.(3)实现呼叫功能.(4)客户端程序应该可以实时显示目前其它用户的状态.三:主要模块的算法描述聊天室服务器端设计:ServerListen-server:ServerSocket-userLinkList:UserLinkList-isStop:publicBoolean+ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList)ActionListenerChatServer-port:publicstaticin-serverSocket:ServerSocket-messageShow:JTextArea-userLinkList:UserLinkList-showStatus:JTextField+ChatServer():public+init():publicvoid+startService():publicvoid+stopService():publicvoid+sendStopToAll():publicvoid+sendMsgToAll(String):publicvoid+sendSystemMessage():publicvoidJFrameThreadServerListen-server:ServerSocket-userLinkList:UserLinkList-isStop:publicBoolean+ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList)ServerReceive-textarea:JTextArea-userLinkList:UserLinkList-isStop:publicBoolean+ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList)课程设计报告书专用纸第2页共18页聊天室客户端设计:四:详细设计聊天室服务器端设计:聊天室服务端主要包括7个文件,它们的功能如下:(1)ChatServer.java:包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用ServerListen类来实现服务端用户上线与下线的侦听,调用ServerReceive类来实现服务器端的消息的收发。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;importjava.net.*;importjava.io.*;/**聊天服务端的主框架类*/publicclassChatServerextendsJFrameimplementsActionListener{publicstaticintport=8888;//服务端的侦听端口ServerSocketserverSocket;//服务端SocketImageicon;//程序图标JComboBoxcombobox;//选择发送消息的接受者ActionListenerChatClient-port:publicstaticin-serverSocket:ServerSocket-messageShow:JTextArea-userLinkList:UserLinkList-showStatus:JTextField+ChatClient():public+init():publicvoid+Connect():publicvoid+DisConnect():publicvoid+SendMessage():publicvoidJFrameThreadClientReceive-socket:Socket-output:ObjectOutputStream-input:ObjectInputStream+ClientReceive(Socket,ObjectOutputStream,ObjectInputStream,JComboBox,JTextArea,JTextField)课程设计报告书专用纸第3页共18页JTextAreamessageShow;//服务端的信息显示JScrollPanemessageScrollPane;//信息显示的滚动条JTextFieldshowStatus;//显示用户连接状态JLabelsendToLabel,messageLabel;JTextFieldsysMessage;//服务端消息的发送JButtonsysMessageButton;//服务端消息的发送按钮UserLinkListuserLinkList;//用户链表//建立菜单栏JMenuBarjMenuBar=newJMenuBar();//建立菜单组JMenuserviceMenu=newJMenu(服务(V));//建立菜单项JMenuItemportItem=newJMenuItem(端口设置(P),newImageIcon(face/98.gif));JMenuItemstartItem=newJMenuItem(启动服务(S),newImageIcon(face/icon.gif));JMenuItemstopItem=newJMenuItem(停止服务(T),newImageIcon(face/Uabrand.gif));JMenuItemexitItem=newJMenuItem(退出(X),newImageIcon(face/messenger_big.gif));JMenuhelpMenu=newJMenu(帮助(H));JMenuItemhelpItem=newJMenuItem(帮助(H),newImageIcon(face/HelpCenter.gif));//建立工具栏JToolBartoolBar=newJToolBar();//建立工具栏中的按钮组件JButtonportSet;//启动服务端侦听JButtonstartServer;//启动服务端侦听JButtonstopServer;//关闭服务端侦听JButtonexitButton;//退出按钮//框架的大小DimensionfaceSize=newDimension(400,600);ServerListenlistenThread;JPaneldownPanel;GridBagLayoutgirdBag;GridBagConstraintsgirdBagCon;/***服务端构造函数*/publicChatServer(){init();//初始化程序//添加框架的关闭事件处理课程设计报告书专用纸第4页共18页this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.pack();//设置框架的大小this.setSize(faceSize);this.setVisible(true);//设置运行时窗口的位置DimensionscreenSize=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+pportItem.setMnemonic('P');portItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));//为启动服务快捷键为ctrl+sstartItem.setMnemonic('S');startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));//为端口设置快捷键为ctrl+TstopItem.setMnemonic('T');stopItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));//为退出设置快捷键为ctrl+xexitItem.setMnemonic('X');exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));//为帮助菜单栏设置热键'H'helpMenu.setMnemonic('H');//为帮助设置快捷键为ctrl+phelpItem.setMnemonic('H');helpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));}课程设计报告书专用纸第5页共18页/***程序初始化函数*/publicvoidinit(){ContainercontentPane=getContentPane();contentPane.setLayout(newBorderLayout());//添加菜单栏serviceMenu.add(portItem);serviceMenu.add(startItem);serviceMenu.addSeparator();serviceMenu.add(stopItem);serviceMenu.addSeparator();serviceMenu.add(exitItem);jMenuBar.add(serviceMenu);helpMenu.add(helpItem);jMenuBar.add(helpMenu);setJMenuBar(jMenuBar);//初始化按钮portSet=newJButton(端口设置);startServer=newJButton(启动服务);stopServer=newJButton(停止服务);exitButton=newJButton(退出);//将按钮添加到工具栏toolBar.add(portSet);toolBar.addSeparator();//添加分隔栏toolBar.add(startServer);toolBar.add(stopSer
本文标题:java课程设计报告-聊天室
链接地址:https://www.777doc.com/doc-4465623 .html