欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java课程设计报告聊天室.docx

    • 资源ID:3275277       资源大小:170.70KB        全文页数:72页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java课程设计报告聊天室.docx

    1、java课程设计报告聊天室JAVA程序设计课程设计报告班级: (4号楷体)学号: (4号楷体)姓名: (4号楷体)指导教师: (4号楷体)完成日期: 2009 年 9 月(4号楷体)一: 题目内容的描述本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。在编程我们使用的java语言,是目前比较流行的编程语言。在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。二: 需求分析1.1 开发

    2、背景:在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个局域网的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识.1.1 功能要求:(1)登录功能.(2)客户可以通过服务器转发,实现一对一和多对多聊天.(3)实现呼叫功能.(4)客户端程序应该可以实时显示目前其它用户的状态.三: 主要模块的算法描述 聊天室服务器端设计: 聊天室客户端设计:四: 详细设计 聊天室服务器端设计:聊天室服务端主要包括7个文件,它们的功能如下:(1)ChatServer.java:包含名为ChatS

    3、erver的public类,其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用ServerListen类来实现服务端用户上线与下线的侦听,调用ServerReceive类来实现服务器端的消息的收发。import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import .*;import java.io.*;/* * 聊天服务端的主框架类 */public class ChatServer extends JFrame implements ActionListe

    4、ner public static int port = 8888;/服务端的侦听端口 ServerSocket serverSocket;/服务端Socket Image icon;/程序图标 JComboBox combobox;/选择发送消息的接受者 JTextArea messageShow;/服务端的信息显示 JScrollPane messageScrollPane;/信息显示的滚动条 JTextField showStatus;/显示用户连接状态 JLabel sendToLabel,messageLabel; JTextField sysMessage;/服务端消息的发送 JB

    5、utton sysMessageButton;/服务端消息的发送按钮 UserLinkList userLinkList;/用户链表 /建立菜单栏 JMenuBar jMenuBar = new JMenuBar(); /建立菜单组 JMenu serviceMenu = new JMenu (服务(V); /建立菜单项 JMenuItem portItem = new JMenuItem (端口设置(P),new ImageIcon(face/98.gif); JMenuItem startItem = new JMenuItem (启动服务(S),new ImageIcon(face/ic

    6、on.gif); JMenuItem stopItem=new JMenuItem (停止服务(T),new ImageIcon(face/Uabrand.gif); JMenuItem exitItem=new JMenuItem (退出(X),new ImageIcon(face/messenger_big.gif); JMenu helpMenu=new JMenu (帮助(H); JMenuItem helpItem=new JMenuItem (帮助(H),new ImageIcon(face/HelpCenter.gif); /建立工具栏 JToolBar toolBar = ne

    7、w JToolBar(); /建立工具栏中的按钮组件 JButton portSet;/启动服务端侦听 JButton startServer;/启动服务端侦听 JButton stopServer;/关闭服务端侦听 JButton exitButton;/退出按钮 /框架的大小 Dimension faceSize = new Dimension(400, 600); ServerListen listenThread; JPanel downPanel ; GridBagLayout girdBag; GridBagConstraints girdBagCon; /* * 服务端构造函数

    8、*/ public ChatServer() init();/初始化程序 /添加框架的关闭事件处理 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); /设置框架的大小 this.setSize(faceSize); this.setVisible(true); /设置运行时窗口的位置 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation( (int) (screenSize.width - face

    9、Size.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 (KeyEvent.VK_P,InputEvent.CTRL_MASK);

    10、/为启动服务快捷键为ctrl+s startItem.setMnemonic (S); startItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK); /为端口设置快捷键为ctrl+T stopItem.setMnemonic (T); stopItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_T,InputEvent.CTRL_MASK); /为退出设置快捷键为ctrl+x exitItem.setMnemonic (X

    11、); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_X,InputEvent.CTRL_MASK); /为帮助菜单栏设置热键H helpMenu.setMnemonic(H); /为帮助设置快捷键为ctrl+p helpItem.setMnemonic (H); helpItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_H,InputEvent.CTRL_MASK); /* * 程序初始化函数 */ public void init() Container

    12、 contentPane = getContentPane(); contentPane.setLayout(new BorderLayout(); /添加菜单栏 serviceMenu.add (portItem); serviceMenu.add (startItem); serviceMenu.addSeparator(); serviceMenu.add (stopItem); serviceMenu.addSeparator(); serviceMenu.add (exitItem); jMenuBar.add (serviceMenu); helpMenu.add (helpIte

    13、m); jMenuBar.add (helpMenu); setJMenuBar (jMenuBar); /初始化按钮 portSet = new JButton(端口设置); startServer = new JButton(启动服务); stopServer = new JButton(停止服务 ); exitButton = new JButton(退出 ); /将按钮添加到工具栏 toolBar.add(portSet); toolBar.addSeparator();/添加分隔栏 toolBar.add(startServer); toolBar.add(stopServer);

    14、toolBar.addSeparator();/添加分隔栏 toolBar.add(exitButton); contentPane.add(toolBar,BorderLayout.NORTH); /初始时,令停止服务按钮不可用 stopServer.setEnabled(false); stopItem .setEnabled(false); /为菜单栏添加事件监听 portItem.addActionListener(this); startItem.addActionListener(this); stopItem.addActionListener(this); exitItem.a

    15、ddActionListener(this); helpItem.addActionListener(this); /添加按钮的事件侦听 portSet.addActionListener(this); startServer.addActionListener(this); stopServer.addActionListener(this); exitButton.addActionListener(this); combobox = new JComboBox(); combobox.insertItemAt(所有人,0); combobox.setSelectedIndex(0); m

    16、essageShow = new JTextArea(); messageShow.setEditable(false); /添加滚动条 messageScrollPane = new JScrollPane(messageShow, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); messageScrollPane.setPreferredSize(new Dimension(400,400); messageScrollPane.revalidate(); show

    17、Status = new JTextField(35); showStatus.setEditable(false); sysMessage = new JTextField(24); sysMessage.setEnabled(false); sysMessageButton = new JButton(); sysMessageButton.setText(发送); /添加系统消息的事件侦听 sysMessage.addActionListener(this); sysMessageButton.addActionListener(this); sendToLabel = new JLab

    18、el(发送至:); messageLabel = new JLabel(发送消息:); downPanel = new JPanel(); girdBag = new GridBagLayout(); downPanel.setLayout(girdBag); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 0; girdBagCon.gridy = 0; girdBagCon.gridwidth = 3; girdBagCon.gridheight = 2; girdBagCon.ipadx = 5; girdBagCon.

    19、ipady = 5; JLabel none = new JLabel( ); girdBag.setConstraints(none,girdBagCon); downPanel.add(none); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 0; girdBagCon.gridy = 2; girdBagCon.insets = new Insets(1,0,0,0); girdBagCon.ipadx = 5; girdBagCon.ipady = 5; girdBag.setConstraints(sendToL

    20、abel,girdBagCon); downPanel.add(sendToLabel); girdBagCon = new GridBagConstraints(); girdBagCon.gridx =1; girdBagCon.gridy = 2; girdBagCon.anchor = GridBagConstraints.LINE_START; girdBag.setConstraints(combobox,girdBagCon); downPanel.add(combobox); girdBagCon = new GridBagConstraints(); girdBagCon.g

    21、ridx = 0; girdBagCon.gridy = 3; girdBag.setConstraints(messageLabel,girdBagCon); downPanel.add(messageLabel); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 1; girdBagCon.gridy = 3; girdBag.setConstraints(sysMessage,girdBagCon); downPanel.add(sysMessage); girdBagCon = new GridBagConstrain

    22、ts(); girdBagCon.gridx = 2; girdBagCon.gridy = 3; girdBag.setConstraints(sysMessageButton,girdBagCon); downPanel.add(sysMessageButton); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 0; girdBagCon.gridy = 4; girdBagCon.gridwidth = 3; girdBag.setConstraints(showStatus,girdBagCon); downPane

    23、l.add(showStatus); contentPane.add(messageScrollPane,BorderLayout.CENTER); contentPane.add(downPanel,BorderLayout.SOUTH); /关闭程序时的操作 this.addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e) stopService(); System.exit(0); ); /* * 事件处理 */ public void actionPerformed(ActionEv

    24、ent e) Object obj = e.getSource(); if (obj = startServer | obj = startItem) /启动服务端 startService(); else if (obj = stopServer | obj = stopItem) /停止服务端 int j=JOptionPane.showConfirmDialog( this,真的停止服务吗?,停止服务, JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE); if (j = JOptionPane.YES_OPTION) stopSer

    25、vice(); else if (obj = portSet | obj = portItem) /端口设置 /调出端口设置的对话框 PortConf portConf = new PortConf(this); portConf.show(); else if (obj = exitButton | obj = exitItem) /退出程序 int j=JOptionPane.showConfirmDialog( this,真的要退出吗?,退出, JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE); if (j = JOptionPan

    26、e.YES_OPTION) stopService(); System.exit(0); else if (obj = helpItem) /菜单栏中的帮助 /调出帮助对话框 Help helpDialog = new Help(this); helpDialog.show(); else if (obj = sysMessage | obj = sysMessageButton) /发送系统消息 sendSystemMessage(); /* * 启动服务端 */ public void startService() try serverSocket = new ServerSocket(p

    27、ort,10); messageShow.append(服务端已经启动,在+port+端口侦听.n); startServer.setEnabled(false); startItem.setEnabled(false); portSet.setEnabled(false); portItem.setEnabled(false); stopServer .setEnabled(true); stopItem .setEnabled(true); sysMessage.setEnabled(true); catch (Exception e) /System.out.println(e); us

    28、erLinkList = new UserLinkList(); listenThread = new ServerListen(serverSocket,combobox, messageShow,showStatus,userLinkList); listenThread.start(); /* * 关闭服务端 */ public void stopService() try /向所有人发送服务器关闭的消息 sendStopToAll(); listenThread.isStop = true; serverSocket.close(); int count = userLinkList.

    29、getCount(); int i =0; while( i count) Node node = userLinkList.findUser(i); node.input .close(); node.output.close(); node.socket.close(); i +; stopServer .setEnabled(false); stopItem .setEnabled(false); startServer.setEnabled(true); startItem.setEnabled(true); portSet.setEnabled(true); portItem.setEnabled(true); sysMessage.setEnabled(false); mes


    注意事项

    本文(java课程设计报告聊天室.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开