Java课程设计之你画我猜

  这几天要做数据结构的课程设计,写了几天终于完成,虽然有很多不足之处,但勉强完成了。过后感觉从大一到现在写过许多项

目,是该总结一下那些年的课程设计了。

  大一做的课程设计是“你画我猜”,那时候修修改改,前后用了一个月的时间,数据库方面是凡神做的,最后的成绩还不错。下面总

一下经验和相关的算法:

  1.“你画我猜”的关键是画板的实现和画面的传输。画板的实现算法思想是:Java提供了鼠标事件MouseListener和

MouseMotionListener,利用这两个监听器可以实现拖动鼠标画出曲线,首先定义一个点的类,即Point类,鼠标拖动一段可以看成无

的点,因为点动成线,而把这些点放到一个ArrayList中,写一个paint方法,把这些点都取出来,每两个点之间画线即可,这样很

多点画线后就出现了曲线。需要注意的是:每个点要有一个boolean型的变量,记录这个点是鼠标的抬起还是按下,如果没有这个变

量,那么就会出现你画的两笔之间是相连的,因此要用这个boolean变量判断一下,决定相邻的两个点之间是否画线。画板的橡皮、

粗细这些操作的实现比较简单,不再陈述。画面传输的问题比较棘手,刚开始的时候我想着是实时地传图,但最后失败了,最后选

择了传点去,也就是每画一笔时,再将点放到ArrayList中时都实时地传过去,这样就可以实现图画的实时变化。  具体的实现是:

    

    Point po1 = new Point(e.getPoint().x,e.getPoint().y,true,co,n,1);  //new一个点的对象
    list.add(po1);   //将点添加到ArrayList中
    PointNewMsg msg = new PointNewMsg(id,po1,clear,cancel);   //new一个点的信息对象
    tc.nc.send(msg);   //将这个点发过去
    repaint();  //重画面版

对于信息的发送和传输,建议看一下尚学堂马士兵的 尚学堂科技_马士兵_在线聊天系统雏形视频教程、尚学堂科技_马士兵_坦克大

战视频教程,都非常好,而且在写别的项目时会用到其中的很多东西。

2.数据库方面。因为“你画我猜”需要题目的存取,因此需要数据库,当然也可以把题目放在一个文件中,当这样显得系统性不强。数

据库方面的问题比较简单,需要注意URL的写法,如:

String url = "jdbc:mysql://localhost/accout?user=root&password=123&useUnicode=true&characterEncoding=gbk";

这里的user和password要写你的用户名和密码。

下面是截图:







这是第一次做一个完整的系统,虽说还有许多不足之处,但自己的能力自己有了一定认识,其实每个人都是一样的,只要想做就一

定能做出来。当然也体会到:罗马果然不是一日建成的。



补充:

最近许多同学问我要源码,今天看了一下大一时做的项目,果然惨不忍睹。看了下项目,主界面是NHWC.java,服务器类是NHWCserver.java,

其他的看名字应该知道是什么,结合上面的讲解相信对你的项目有些帮助,导入后会因为数据库问题报错,但最主要的还是提供编码参考,不建议直接

使用。现附上源码下载地址:


百度云盘: https://pan.baidu.com/s/1dEPit6x


CSDN:http://download.csdn.net/download/u014267402/9690944

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值