网络聊天应用程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络聊天应用程序

网络聊天应用小程序 姓名: 班级: 学号: 功能描述 实现网络聊天 消息显示框显示发送和接收的消息 消息编辑框用于编辑要发送的消息 按发送按钮或者快捷键Ctrl+Enter发送 发送消息后显示到显示区域,并将发送区域的内容清空 后台有线程接收消息 当接收消息时要显示到显示区域 总体设计 设计界面 由于要实现发送和接收两个功能,而且两个功能是并行的,所以要用多线程实现。主线程用于发送,另外开个接收线程在本机某个端口监听,接收发送来的数据。 详细设计 创建多线程方法为 new Thread(new ReceiveThread()).start(); class ReceiveTread implements Runnable { @Override public void run() { ///线程要执行的内容 } } DatagramSocket类实现网络通信 DatagramSocket ds = new DatagramSocket(port); 表示监听本机的port端口 DatagramPacket类能封装发送或者接收的数据 接收数据 DatagramPacket dp = new DatagramPacket(b, size); ds.receive(dp); byte[] b = dp.getData(); String str = new String(b); 发送 byte b = “content”.getBytes(); DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getByName(host), port); ds.send(dp); 显示 private JButton sendButton; //发送按钮 private JTextArea sendArea; //发送区域 private TextArea showArea; //接收区域 往显示区域添加消息 showArea.append(message); 从发送区域获得要发送的字符 String str = sendArea.getText(); 给发送区域添加键盘监听,用于实现快捷键发送 sendArea.addKeyListener(new KeyAdapter()); 给发送按钮添加活动监听,当点击时发送消息 sendButton.addActionListener(new ActionListener()); 程序代码 Chat.java package cn.hnist.main; import javax.swing.JFrame; import javax.swing.UIManager; import cn.hnist.controller.Controller; public class Chat { public static void main(String[] args) { //设置字体 try { UIManager.put(swing.boldMetal, Boolean.FALSE); UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { e.printStackTrace(); } //初始化窗口 JFrame frame = new JFrame(聊天); //设置关闭窗体时退出程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //初始化一个Controller类,继承了JPanel Controller controller = new Controller(); //往窗体上加主面板 frame.add(controller); //设置窗体 frame.setBounds(120,100,controller.getSize().width+20, controller.getSize().height+10); //设置窗体无法调整大小 frame.setResizable(fals

文档评论(0)

ah82299 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档