java课程设计qq,模块java课程设计报告qq聊天-程序员宅基地

技术标签: java课程设计qq  

河南工业大学

课程设 计

课程设计名称: ja  a qq聊天系统

学生姓名 : x  aoy   

指导教 师: 王高平

课程设计时间: 2016.7.7

计科 专业课程设计任务书

说明:本表由指导教师填写,由教研室主任审核后下达给选题学生装订在设计(论文首页1需求分析

运用java语言实现一个qq聊天局域网系统主要功能实现信息的相互交流,整个程序分三个大模块第一个模块是服务器端的设计第二个模块是客户端的实现第三个模块是数据库连接的实现。主要实现一个客户端发送串字符信息,另一端客户端能接受(在一个局域网下 同时建立了一个数据库(my ql  用于注册用户,同时存储用户的信息以及找回密码要用到的密保问题答案。

2 概要设计

主要类:

Jqq 类:主要是登录窗口

Ce  l类:按钮类

Fi  dp  s word.java:找回密码类

Loo :注册窗口

Lookpa  swo  d.java:查看密码窗口

Reg  s  er.java:注册账号类

J vaysql .jav 数据库类连接数据库。3运行环境软、硬件环境

i  dow,6 位pc机,jv j   a虚拟机)4 开发工具和编程语言

  i  s ,java

5详细设计

Server. java 实现一个小型的服务器)

ackage sever.n ipr jav io.  ;import java.net.* 

mport  ava.util.*;pblic class Se r 

boo  ean tar d= fa se;

S e ve  ocet s =null;

L  s  l e ts  newrraList

 n Sevr() .t  t(  ;

}

ubl  c vo   tar () try{

s = eS rverSocket(999) ;st a   e d =true;

}catch (B  ndxcept  on ) {

Sys  em.ou  .print    "端口使用中. . .);

Sytem out.printl ("请关掉相关程序并重新运行服务器!   ; Sys  em. x   () 

} ctch  IE x c e ptin e) {

e.printtacTrae  ) 

 }

try 

 hil  st art e) {

 So ke  s = ss accet() 

 lien  c=ne w lient(s  ;

 Syste o  .print  n  "a l ent cnnecte !"); nw T re  (c) start(  ;

clien  s ad (c  ;

 / dis clse( ) ;

}

} c  ch  IOExceptio e  {

.print  ackTrace( ) ;

 }f nlly{

tr {

ss clos  );

  catch (IE cp   o  e) {

/ TOD Aut-generatd atc bloc

 e.prin St kT   e( ) ;

 

 

}

class Client mplementsunnabl {

pr  v  e cet  

privat D taI ut Stra m   s  n ul  ;

privateat a O      S  read o s =   l ;

  ivateb lean bC nected= false;

 public Cliet S ocket s) 

 this.s  s;

t  {

 di =nw D a  I ut Stre s.etIp uttrem  ) )  os =nw D taOutputtram(s.getutputt am  )  

C n n td =true;

 } catch (IExept  on ) {

.printS   kTrace( ) ;

 }

 }

pub  ic oid snd  String tr) {

 tr {

  d o s.write U T F(str) 

}catc (IOExcept  on e) {

c   e nts  e m oe  his);

y s  e m. u  .r n  ln("对方退出了我从Lit里面去掉了   ; // e rintStackTrace( ) ;

}

}

ubli vo  d run(    /线程体

 tr {

w  ile (bConnected  {

  tri     = di .red U T F( ) ;

 S yte m.o ut.pr  ntln(tr);

  f or  in  = 0; i< cli t s.s  z e   ;  +) {

 lient c  cl  nts.get(i 

 c.s e n d  str);

 }

}

 } atch (O F E  eption ) {

System.ot.println("   e t clsed!");

 }catch (IOEceptio e) 

.p  tStackrac   ;

} finlly {

  ry{

 if  di s != ul  )

 is.close( ) ;

 if (dos  =nll

dos.close( ) ;

 if (s  = n ll) {

s.clos (  ;

      = ull 

  

   cath (IOEcetin e1) {

 1.pr  nttakTra  (  

 }

 

}

}

}

Jq 类:登录的窗口类package   .xiaoy g co;imp ort ja .awt.Clor;ip  tjava.awt Font;

mpor  jaa.awt een  .ActionEvnt;mpo  t j a.awt.event Ac  ioLitenr;m ort ja .awt event.ouseEvn  ;impor jaa w  .eent.ouseListen  ipo  tjav.ql Co neti  impor  va sl.PrparedState   impor ja .q  .Resu  tSet imprt  aa.sql.SQLEcept  o ;impor java sql.S  atment importj ax.sw  ng.ImaeIcon 

 rt jaax w  ng JButto impo  t  aax.swing.JF  a;

ort javx.ing.JLabe  ;impor java.si .P   l;

prt java.si .JPassworFildimo  t j   .swig. Tex  F  eld;

publicc  as Jqq xtend Frm    ments Mo seL  stener {privat stti final lng sria Versin UID  1 L;public st  ic voi m in Str  ng args[]  

JqqF f e JqF  );

 pb  ic tati JTxtField n a m e = n J   Field(0) 

JLabe  neLa =ne J bel(号:") p licstaticJPasswrF  eldnam =new JassworFiel  2);JLabelnmeLa =new Lbel();

Strig pat5  "  c//.png";

// 背景图片

IageIo  backrond =nw IaeIo  (ath5  ;

ell b ut=n ec ell(b a c k gr o u n d);

F o nt nt =nw F o    "S e  ief") ;

trig    h4 = "pi//  . g  ;

ImagIcon bckgro d4 = nw Imag  cn(ath);c el  bt=n e ellb a c kr  d 4 );

String pt3 = pic  /b.png  

ImagIcon bacground =nw ImgeIcn(pa  h3  cell t2= new cl (bckgroud3  ;

t ig path  "pic//q. g" 

Iage   nbac   ou   =nw ImageIco (path2  ;

JLabel  abl  nw JLab  (   grou 2) public Jqq () {

super("q测试);

t is setSize(0  334) ;ti .   L o c a  io (300, 200) ;this.setVisib  e(tre);

St  ing a  h = "pic//qq.png";

// 背景图片

 ImagIcon acground=ne  magIco path) ;

  /把背景图片显示在一个标签里面

JLael label=n Lbel(bacg  und) ;

 a b el.s et y o ut(u    ;

//把标签的大小位置设置为图片刚好填充整个面板

lbel stBo ds(, 0,th s.gtWid h( )  t  s.e  eight() ) ;

//把内容窗格转化为JPanel 否则不能用方法setOpaqe  )来使内容窗格透明JPa     mageP n  = (JPanl th  g  Contetan () 

igPanel.s  Op qe(  le);

//把背景图片添加到分层窗格的最底层作为背景

nameLb setont(fnt);naLab.s  Fo     oun lor.yellow) ;

 a m  a.se  Fn  (fn );

  e L a.etF ore gro un (olo  .ellw) ;

 name ab.etBuds(160, 12  100  30) ;

 t setBoun  (36, 120, 72, 0  

bt addActioLitener(newctionLis  ener() {

 O    r e

 ubl  c voi    ionP e  ford ctioEvent e) {

rgiter =n e w  e  s  r(  

 

   ;

 name.e  Bounds  2 ,  20, 10, 30) ;

 n a mL s et B n  (16,  60  10, 3);

 am se  Bo ns(250,  0  10  30) 

 b  2 .setBouns( 0, 160, 7, 0) ;

t.adActi L  tene  newctionListnr ) 

@ O v e  rid

 pul c o   ac  in  form  (Ac  ionEvn  ) { ew fidpssword(  ;

});

//  /nam.setColmns  20) ;

lae  2 setBounds  65, 120 ;

 ut se  Bounds(185, 2  0   47, 0) ;

 u  dMouseListener(this);lae  .   (am Lab) ;

 lbel ad (bt  ;

labl.dd(b  2) la l.add  na);lael ad(am La);

  abl add(  abel2  ;labe  .ad  na m   ;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_32661831/article/details/115809385

智能推荐

(转)淘淘商城系列——商品搜索功能测试-程序员宅基地

文章浏览阅读107次。http://blog.csdn.net/yerenyuan_pku/article/details/72941506到这里,我相信大家也是不容易,我自己也算是很不容易写到这里,希望自己能一直写下去。之前我们就差不多把商品搜索功能实现了,本文我们来一起测试下该搜索功能。 首先我们要保证zookeeper、redis、image、solr服务都开启。接着我们把taotao-common工..._商品搜索浏览功能测试

EOS开发环境搭建-程序员宅基地

文章浏览阅读67次。EOS开发环境搭建  在上一篇文章《扒一扒EOS的前世今生》中,我们已经了解了EOS以及他的创始人Daniel Larimer的故事,本次为大家带来的是关于EOS开发环境搭建的内容。首先我们来了解一下EOS的核心架构和白皮书。1. EOS的核心架构  EOS网络由21个超级节点和100个备选节点构成,这21个超级节点负责轮流产生区块,避免了挖矿竞赛的问题,有效的提高同步数据的性能。2..._eos环境搭建

Yii 安装-程序员宅基地

文章浏览阅读31次。// 安装 composer curl -s http://getcomposer.org/installer | php// 把 composer 添加到全局命令mv composer.phar /usr/local/bin/composer// 安装 Composer asset plugincomposer global require "fxp/compos...

xmlHttpRequest 以Post方式发数据到Asp.net页,在gb2312编码下的解决办法-程序员宅基地

文章浏览阅读81次。 首先xmlHttpRequest 使用Post时,需要对数据进行编码,在客户端一般使用js中的encodeURIComponent 在web.config中指定了gb2312编码后,在aspx页面中如果直接使用 Request[xxx]那么结果将会出现乱码,原因是asp.net系统使用gb2312编码对上传的数据进行解码还原,而encodeURIComponent编码是按uft..._post请求解析gb2312

spring cloud、gradle、父子项目、微服务框架搭建---搭建父子级多模块项目,并注册到Eureka注册中心(二)_gradle模块父子关系引入-程序员宅基地

文章浏览阅读1.1k次。总目录https://preparedata.blog.csdn.net/article/details/120062997一、新建一个父级gradl模块1.在桌面或新建文件里面,右键,打开IDEA选择Flie > NEW > Module选择Gradle, 选择Module SDK 1.8, 选择Java创建完成后,idea中会多出一个项目,如下图示例然后直接关闭当前idea, 进入刚才创建好的文件下,再次打开项目可以直接删除src目录二、新建子级gradl_gradle模块父子关系引入

SPI通信协议(转)_spi是同步通信吗-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏21次。来源-作者@涛少&amp;:https://www.cnblogs.com/deng-tao/p/6004280.html建议读者阅读原文,确保获得完整的信息1、SPI是什么①串行外设接口(Serial Peripheral Interface)的缩写。② Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。2、SPI的优缺点优点: ..._spi是同步通信吗

随便推点

conda中设置源_conda 源-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏12次。文章目录添加源清华源腾讯源移除源清华源腾讯源打印当前channels系统中的配置文件使用pip源添加源清华源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels h_conda 源

Linux下USB转串口的驱动【转】-程序员宅基地

文章浏览阅读42次。转自:http://www.linuxidc.com/Linux/2011-02/32218.htmLinux发行版自带usb to serial驱动,以模块方式编译驱动,在内核源代码目录下运行Make MenuConfig选择Devces drivers-->USB seupport--> <M>USB Serial Converter support --> ..._ttyusb 需要哪些ko

Python字符串格式化方法及对比分析:百分号与format方式-程序员宅基地

文章浏览阅读259次。字符串格式化目前有两种方式:一、“%”方式;二、format方式;一、“%”方式1、%传值:%s:可以接收任何值;%d:接收数字;1 msg = 'my name is %s' %'zhangsan' #str类型2 msg1 = 'he is %s' %20 #he is 20 int类型3 msg2 = 'she likes %s' %['apple','orange','pai'] #..._pylance 只有提示 无法自动格式化

深入理解Thread.sleep()函数_thread sleep-程序员宅基地

文章浏览阅读1.4k次,点赞5次,收藏5次。目录前言回顾操作系统原理时间片算法抢占式操作系统前言我们可能经常会用到 Thread.sleep() 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.sleep(0) 。既然是 sleep 0 毫秒,那么他跟去掉这句代码相_thread sleep

计算机专业学数值分析,计算机科学专业数值分析考试试题计科3班.doc-程序员宅基地

文章浏览阅读290次。完美WORD格式专业整理 知识分享计算机科学专业数值分析试卷(计科3班)一、选择题(每小题4分,共20分)1.已知求积公式,则( ).A . B. C. D.2. 通过点,的拉格朗日插值基函数满足 ( ).A . B.C . D.3. 求解方程,若可以表示成,则用简单迭代法求根,那么满足( ..._有3个不同节点的高斯求积公式的代数精度是( ).

Linux scp_scp linix-程序员宅基地

文章浏览阅读5.2k次。采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器拷贝远程服务器的文件到本地:scp -r -P 端口号 用户名@IP地址:/usr/local/tomcat_airc/webapps/ /tmp/kyj/ 拷贝本地文件到远程服务器:scp -r /tmp/kyj/sys.war 用户名@IP地址:/usr/local/tomcat_..._scp linix

推荐文章

热门文章

相关标签