JAVA聊天程序设计代码报告_第1页
JAVA聊天程序设计代码报告_第2页
JAVA聊天程序设计代码报告_第3页
JAVA聊天程序设计代码报告_第4页
JAVA聊天程序设计代码报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一.系统需求剖析之勘阻及广创作网络聊天室往常直称聊天室,是一种人们能够在线谈话的网络论坛,在同一聊天室的人们经过广播信息进行及时谈话。在现在信息时代,愈来愈多的聊天工具被应用,java语言是现在流行的网络编程语言,它拥有面向对象,与平台没关,平安,多线程等特色。使用java语言不仅能够实现大型公司级的散布式应用系统,还可以够为小型的的,嵌入式设施进行应用程序的开发。面向对象的开发是现在世界最流行的开发方法,它不仅拥有更切近自然地语义,并且有益于软件的保护和继承,锻炼我们娴熟地应用面向对象的思想和设计方法解决实质问题的能力。本程序正是用java语言实现了简单聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采纳了java.awt包,java.swing包等。二.系统整体设计因为本软件知识一个聊天程序,程序只供给用户之间的聊天功能,故对网络传输数据要求不是很高,只需正常的传输速度就能够了。数据管理IP地点(IP),端口(Port)本软件采纳Java语言编写,Java语言是一种跨平台的编程语言,因此本软件对操控系统没有特别的要求。而网络传输方面采纳TCP/IP网络传输协议或许是RMI。1)本软件客户端与用户共用一段程序。客户端编译运转后,在窗口选择侦听。用户编译运转后,在窗口选择连结。2)本软件实现的功能有同意服务器侦听客户端,客户端连结到服务器同意服务区与客户端之间进行聊天;同意服务器与客户端改正布景颜色;同意服务器与客户端改正字体颜色;5)服务器与客户端时,会显示内容发送时间;6)同意服务器与客户端用鼠标点击“发送”,按ENTER键均可发送内容7)同意服务器与客户端用鼠标点击封闭时封闭聊天窗口三.系统详尽设计1)程序中引入的包:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;.*;importjava.io.*;2)代码中自定义的类:类名:chatHouse继承的类:JFrame实现的接口:ActionListener,Runnable作用:结构服务器界面以及客户端界面。定义的对象:TextAreata;JTextFieldip;JTextFieldport;JButtonbtn_server;JButtonbtn_client;JButtonbtn_backGroundCol;JButtonbtn_fontCol;JTextFieldsend_text;JButtonbtn_send;JButtonbtn_close;JLabelpic;Socketskt;结构方法:publicchatHouse( )主要成员方法:publicvoidrun( )publicvoidactionPerformed(ActionEvente)publicvoiddoServer( )publicvoiddoSend( )2.源代码[chatHouse.java]importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;.*;importjava.io.*;importjava.util.*;publicclasschatHouseextendsJFrameimplementsActionListener,Runnable{privateTextAreata;privateJTextFieldip;privateJTextFieldport;privateJButtonbtn_server;privateJButtonbtn_client;privateJButtonbtn_backGroundCol;privateJButtonbtn_fontCol;privateJTextFieldsend_text;privateJButtonbtn_send;privateJButtonbtn_close;privateJLabelpic;privateSocketskt;publicvoidrun( ){try{BufferedReaderbr=newInputStreamReader(skt.getInputStream( )));while(true){

BufferedReader(newStrings=br.readLine( );//if(s==null)break;ta.append(s+"\n");

从网络读}}catch(Exceptione){e.printStackTrace( );}}publicvoidactionPerformed(ActionEvente){if(e.getSource( )==btn_server){doServer( );}if(e.getSource( )==btn_client){doClient( );}if(e.getSource( )==btn_send){doSend( );}}publicvoiddoServer( ){try{ServerSocketserver=newServerSocket(Integer.parseInt(port.getText( )));skt=server.accept( );ta.append("连结成功!\n");newThread(this).start( );}catch(Exceptione){ta.append("服务器启动失败!\n");}}publicvoiddoClient( ){try{skt=newSocket(ip.getText( ),Integer.parseInt(port.getText( )));ta.append("连结成功!\n");newThread(this).start( );}catch(Exceptione){ta.append("连结失败!\n");}}publicvoiddoSend( ){Calendarc=Calendar.getInstance( );inty=c.get(c.YEAR);intM=c.get(c.MONTH)+1;intd=c.get(c.DAY_OF_MONTH);inth=c.get(c.HOUR_OF_DAY);intmm=c.get(c.MINUTE);intss=c.get(c.SECOND);try{PrintWriterpw=newPrintWriter(skt.getOutputStream( ));Strings=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(Exceptione){ta.append("发送失败!\n");}}publicchatHouse( ){super("聊天室");this.setBounds(100,100,550,430);Containercc=this.getContentPane( );JPanelp1=newJPanel( );cc.add(p1,BorderLayout.NORTH);JPanelp2=newJPanel( );cc.add(p2,BorderLayout.CENTER);JPanelp3=newJPanel( );cc.add(p3,BorderLayout.SOUTH);pic=newJLabel(newImageIcon("12.gif"));cc.add(pic,BorderLayout.EAST);p1.add(newJLabel("IP:"));ip=newJTextField("",10);p1.add(ip);p1.add(newJLabel("Port:"));port=newJTextField("7777",4);p1.add(port);btn_server=newJButton("p1.add(btn_server);

侦听");btn_client=newJButton("p1.add(btn_client);

连结");btn_backGroundCol=newJButton("布风景");p1.add(btn_backGroundCol);btn_fontCol=newJButton("字体颜色");p1.add(btn_fontCol);p2.setLayout(newBorderLayout( ))ta=newTextArea( );p2.add(ta,BorderLayout.CENTER);send_text=newJTextField("Hello.");p2.add(send_text,BorderLayout.SOUTH);btn_send=newJButton("发送");p3.add(btn_send,BorderLayout.WEST);btn_close=newJButton("封闭");p3.add(btn_close,BorderLayout.CENTER);//"封闭"按钮监听器btn_close.addActionListener(newActionListener( ){publicvoidactionPerformed(ActionEvente){System.exit(100);}});//布景变色监听btn_backGroundCol.addActionListener(newActionListener( ){publicvoidactionPerformed(ActionEvente){JColorChooserchooser4=newJColorChooser( );Colorcolor=chooser4.showDialog(null,"",Color.yellow);ta.setBackground(color);

布景颜}});字体变色监听btn_fontCol.addActionListener(newActionListener( ){publicvoidactionPerformed(ActionEvente){JColorChooserchooser4=newJColorChooser( );Colorcolor=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);setDefaultClo搜索引擎优化peration(JFrame.EXIT_ON_CLOSE);send_text.addKeyListener(newKeyAdapter( ){publicvoidkeyPressed(KeyEvente){if(e.getKeyCode( )==KeyEvent.VK_ENTER)doSend( );}});}publicstaticvoidmain(String[]args){newchatHouse( ).setVisible(true);}}importjava.util.*;3.程序测试编译运转程序后,先选择对方IP,选择相同的Port。服务器先侦听,客户端再连结。连结成功,窗口会显示“连结成功!”字样。接下来就能够聊天了。服务器与客户端聊天。服务器与客户端聊天。服务器将布景颜色设为粉红,字体颜色设为蓝色。客户端将布景颜色设为蓝色,字体颜色设为红色。四.小结1.经过本次课程设计,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论