




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档一系统需求分析网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。本程序正是用java语言实现了简单聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt包,java.swing包等。二系统总体设计1.对性能的规定由于本软件知识一个聊天程序,程序只提供用户之间的聊天功能,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。2数据管理IP地址(IP),端口(Port)3.开发环境本软件采用Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对操作系统没有特别的要求。而网络传输方面采用TCP/IP网络传输协议或者是RMI。4.设计概要(1)本软件客户端与用户共用一段程序。客户端编译运行后,在窗口选择-侦听。用户编译运行后,在窗口选择-连接。(2)本软件实现的功能有1)允许服务器侦听客户端,客户端连接到服务器2)允许服务区与客户端之间进行聊天;3)允许服务器与客户端更改背景颜色;4) 允许服务器与客户端更改字体颜色;5)服务器与客户端时,会显示内容发送时间;6)允许服务器与客户端用鼠标点击“发送”,按ENTER键均可发送内容7)允许服务器与客户端用鼠标点击关闭时关闭聊天窗口三系统详细设计1.代码功能描述(1)程序中引入的包:import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;(2)代码中自定义的类:类名:chatHouse继承的类:JFrame实现的接口:ActionListener, Runnable作用:构造服务器界面以及客户端界面。定义的对象: TextArea ta; JTextField ip; JTextField port; JButton btn_server; JButton btn_client; JButton btn_backGroundCol; JButton btn_fontCol; JTextField send_text; JButton btn_send; JButton btn_close; JLabel pic; Socket skt;构造方法:public chatHouse()主要成员方法:public void run() public void actionPerformed(ActionEvent e) public void doServer() public void doSend()2.源代码chatHouse.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;import java.util.*;public class chatHouse extends JFrame implements ActionListener, Runnableprivate TextArea ta;private JTextField ip;private JTextField port;private JButton btn_server;private JButton btn_client;private JButton btn_backGroundCol;private JButton btn_fontCol;private JTextField send_text;private JButton btn_send;private JButton btn_close;private JLabel pic; private Socket skt;public void run()tryBufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream();while(true)String s = br.readLine(); / 从网络读if(s=null) break;ta.append(s + n);catch(Exception e)e.printStackTrace();public void actionPerformed(ActionEvent e)if(e.getSource()=btn_server)doServer();if(e.getSource()=btn_client)doClient();if(e.getSource()=btn_send)doSend();public void doServer()tryServerSocket server = new ServerSocket(Integer.parseInt(port.getText();skt = server.accept();ta.append(连接成功!n);new Thread(this).start();catch(Exception e)ta.append(服务器启动失败!n);public void doClient()tryskt = new Socket(ip.getText(), Integer.parseInt(port.getText();ta.append(连接成功!n);new Thread(this).start();catch(Exception e)ta.append(连接失败!n);public void doSend()Calendar c=Calendar.getInstance();int y=c.get(c.YEAR);int M=c.get(c.MONTH)+1;int d=c.get(c.DAY_OF_MONTH);int h=c.get(c.HOUR_OF_DAY);int mm=c.get(c.MINUTE);int ss=c.get(c.SECOND);tryPrintWriter pw = new PrintWriter(skt.getOutputStream();String s = send_text.getText();if(s=null) return;ta.append(y+-+M+-+d+ +h+:+mm+:+ss+n);ta.append(s+n);pw.println(y+-+M+-+d+ +h+:+mm+:+ss);pw.println(s);pw.flush();send_text.setText();catch(Exception e)ta.append(发送失败!n);public chatHouse()super(聊天室);this.setBounds(100,100,550,430);Container cc = this.getContentPane();JPanel p1 = new JPanel();cc.add(p1, BorderLayout.NORTH);JPanel p2 = new JPanel();cc.add(p2,BorderLayout.CENTER);JPanel p3 = new JPanel();cc.add(p3,BorderLayout.SOUTH);pic=new JLabel(new ImageIcon(12.gif);cc.add(pic,BorderLayout.EAST);p1.add(new JLabel(IP: );ip = new JTextField(, 10);p1.add(ip);p1.add(new JLabel(Port: );port = new JTextField(7777, 4);p1.add(port);btn_server = new JButton(侦听);p1.add(btn_server);btn_client = new JButton(连接);p1.add(btn_client);btn_backGroundCol =new JButton(背景色);p1.add(btn_backGroundCol);btn_fontCol =new JButton(字体颜色);p1.add(btn_fontCol);p2.setLayout(new BorderLayout()ta = new TextArea();p2.add(ta, BorderLayout.CENTER);send_text = new JTextField(Hello.);p2.add(send_text, BorderLayout.SOUTH);btn_send = new JButton(发送);p3.add(btn_send, BorderLayout.WEST);btn_close =new JButton(关闭);p3.add(btn_close, BorderLayout.CENTER);/-关闭按钮监听器 btn_close.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.exit(100); );/-背景变色监听btn_backGroundCol.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JColorChooser chooser4=new JColorChooser(); Color color=chooser4.showDialog(null,背景颜,Color.yellow); ta.setBackground(color); ); /-字体变色监听 btn_fontCol.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JColorChooser chooser4=new JColorChooser(); Color color=chooser4.showDialog(null,字体颜色,Color.black); send_text.setForeground(color); ta.setForeground(color); );/-按ENTER键可发送监听btn_server.addActionListener(this);btn_client.addActionListener(this);btn_send.addActionListener(this);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);send_text.addKeyListener(new KeyAdapter()public void keyPressed(KeyEvent e)if(e.getKeyCode()=KeyEvent.VK_ENTER)doSend(););public static void main(String args)new chatHouse().setVisible(true);import java.util.*;3程序测试编译运行程序后,先选择对方IP,选择同样的Port。服务器先侦听,客户端再连接。连接成功,窗口会显示“连接成功!”字样。接下来就可以聊天了。(1) 服务器与客户端聊天。(2)服务器与客户端聊天。服务器将背景颜色设为粉红,字体颜色设为蓝色。客户端将背景颜色设为蓝色,字体颜色设为红色。四小结1通过本次课程设计,使得自己懂得理论和实践相结合起来,从理论中得出结论,才能真正掌握这门技术,也提高了自己独立思考的能力,在设计的过程中,可以自己解决
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 故宫古建筑文化风格模板32
- 心理健康在线辅导行业深度调研及发展项目商业计划书
- 复杂系统建模与仿真行业跨境出海项目商业计划书
- 建材工程设计在线平台行业深度调研及发展项目商业计划书
- 2025年低碳城市规划中的绿色建筑评价体系案例分析
- 2025年新高二数学(人教A版暑假衔接)新课预习-1.1.1 空间向量及其线性运算(学生版)-新高二暑假衔接
- 2025年创新药物研发靶点发现与验证技术挑战与机遇分析报告
- 儿童急性腮腺炎的护理
- 《民航情景英语》课件Unit2
- 冰雪竞赛环境优化-洞察阐释
- 《中国肌肉减少症诊疗指南(2024版)解读》
- 人工智能产品的用户体验优化研究
- 钠离子电池电解液企业制定与实施新质生产力战略研究报告
- 演出经纪人考试历年真题试题及答案
- 肿瘤TNM分期标准化流程
- “机械臂轨迹:自适应纠正粒子群”
- 陕西水务发展集团招聘笔试真题2024
- 七下语文教材课后习题答案
- 2024年中考语文常考名著习题训练:《骆驼祥子》
- 右旋糖酐纳米硒的制备表征及其稳定性和体外抗氧化活性分析
- 水箱安装施工方案范本
评论
0/150
提交评论