![](https://img-blog.csdnimg.cn/20200219122834102.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java项目
使用eclipse实现的项目
hnu哈哈
湖南大学2022届毕业本科生
展开
-
login.html
login.html原创 2024-04-16 17:03:01 · 139 阅读 · 0 评论 -
@ControllerAdvice 配合@ExceptionHandler 实现全局异常处理
@ControllerAdvice 配合@ExceptionHandler 实现全局异常处理转载 2023-03-06 10:12:31 · 246 阅读 · 1 评论 -
Springboot 使用@valid注解
springboot 使用@Valid注解简化对前端的request参数验证转载 2023-03-06 09:59:45 · 305 阅读 · 0 评论 -
SpringMVC返回json数据给前台null值处理
使用ResponseEntity返回结果给前端的null值缺失问题原创 2023-02-14 10:59:47 · 503 阅读 · 0 评论 -
超级马里奥游戏开发一(游戏基本界面)
1.开始界面实现功能:开始界面,点击开始游戏进入游戏界面(1)常量类StaticValue第一步我们的游戏肯定有很多的常量素材,比如一些背景图片,音乐,马里奥的形象,建筑,敌人等等。为了便于我们的使用,我们可以写一个常量类来保存这些预先处理好的材料。我们需要:①游戏开始图片②游戏进行时图片③游戏结束时图片④马里奥的图片⑤怪物的图片⑥障碍物的图片 这些都是不需要改变的常量,因此定义为static属性 我们将图片资源存储在工程的image目录下,因此可以用一个字符串imgPath来...原创 2020-07-18 22:47:32 · 2926 阅读 · 0 评论 -
快递管理系统版本二(添加Exception)
代码资源:链接:https://pan.baidu.com/s/1CKeXKaOdIcYIh5_sQ9XgcQ提取码:3qau原创 2021-07-14 10:58:29 · 204 阅读 · 0 评论 -
快递管理系统版本四(添加IO)
链接:https://pan.baidu.com/s/1WbXWWzjvmflzP9cu4YFe_w提取码:zu26原创 2021-07-20 17:10:08 · 253 阅读 · 0 评论 -
快递管理系统版本三(添加list集合)
链接:https://pan.baidu.com/s/13g92YC5Hgbpp3rPyNhZkLg提取码:a911原创 2021-07-20 12:55:04 · 185 阅读 · 0 评论 -
抽象设计模式介绍和应用(Java画图程序)
介绍UML图:工程压缩包链接:https://pan.baidu.com/s/16c6oNL7J8xFUTt7pyNxBHw提取码:bt2o原创 2020-11-27 22:01:48 · 646 阅读 · 1 评论 -
工厂方法模式介绍和应用(Java画图程序)
目录介绍UML图项目代码介绍UML图项目代码链接:https://pan.baidu.com/s/1iXXSWav09OUXwuIO2K6Dig提取码:q3e8原创 2020-11-27 21:57:39 · 260 阅读 · 0 评论 -
简单工厂模式介绍和应用(Java画图程序UML、项目代码)
目录介绍工程UML图:工程压缩包:介绍工程UML图:工程压缩包:链接:https://pan.baidu.com/s/1iWOJwxU3Awh9gAqPpi0jfw提取码:4ybi原创 2020-11-27 21:48:55 · 440 阅读 · 6 评论 -
超级玛丽游戏开发五(动作音效)
实现功能:马里奥跳跃、撞击、游戏开始、结束、游戏中的背景音乐。在进行某个动作的时候需要调用进行播放音效的方法。 包装一个Sound类,有具体地方法来播放给定的音效。 每一个音效都对应不同的音乐文件,和不同的使用场景,特别是背景音乐需要循环播放,因此需要用到线程,可以包装一个Music类实现Runnable接口。1.Sound类import java.io.FileNotFoundException;public class Sound { static fina原创 2020-07-25 21:22:44 · 960 阅读 · 1 评论 -
超级玛丽游戏开发五(击碎障碍物砖块)
在Background类里面需要有一个击碎砖块的方法:击碎的砖块必须不再被绘制出0来(allObjects队列内移除) 击碎的砖块不再成为障碍物,不阻碍角色运动(allConstructions队列里面移除被击碎的部分,可能之前的整体被分割为几个部分) /* * 击碎砖块 * */ public void removeObjects(int posx){ //击碎的Object的左右边界 int splitl = 0,splitr = 0; //处理绘制的Object队...原创 2020-07-24 09:40:27 · 657 阅读 · 0 评论 -
超级玛丽游戏开发五(角色与障碍物的互动)
实现功能:马里奥可以跳跃到障碍物上面,不能穿过障碍物1.继续修改马里奥的跳跃功能的实现之前马里奥的跳跃:①通过一个jump方法里面分别实现向上、向下的移动过程,使用了Thread.sleep()和循环 ②通过jump方法里面改变y方向的速度,运用Thread.sleep()来控制跳跃过程的时间,设置了跳跃的最高点高度,通过跳跃标记是否不为0 +posy是否为0来判断是否落地。 但是到了与障碍物互动的时候,就显得很不方便,因为马里奥不能在跳跃过程中穿过障碍物,因此我们在Collide类里面...原创 2020-07-23 23:02:05 · 899 阅读 · 0 评论 -
超级玛丽游戏开发四(角色与敌人的互动)
目录1.与敌人的撞击,生命减少2.马里奥踩踏敌人,敌人死亡实现功能:角色移动时遇到障碍物无法穿过,需要进行跳跃,角色撞击砖块的时候你,砖块被消除;角色遇到敌人的时候生命值-1,角色踩到敌人的时候敌人被消灭掉。1.与敌人的撞击,生命减少在游戏过程中需要不断检测与队列里面的敌人是否撞击(根据mario和所有enemy的位置及大小判断),因此这里需要用到线程。但是MFrame里面已经用线程来进行图像的绘制了,因此我的处理是,在MFrame里面加一个内置类Collide实现Runbbale接原创 2020-07-22 11:00:49 · 489 阅读 · 0 评论 -
超级玛丽游戏开发三(障碍物和敌人的设置)
实现功能:加入敌人和障碍物对象,敌人可以移动,马里奥和敌人之间的碰撞需要检测,马里奥不能穿过障碍物。1.敌人类Enemy同样在界面类MFrame的run方法里面绘制敌人的图片,因此我们的敌人也像之前的马里奥一样,需要被封装成一个类。 敌人类对外必须能提供自己此刻的图像、位置、大小。 敌人有自己的运动轨迹,因此需要实现Runnable接口,使用线程。package Mario_7_12;import java.awt.image.BufferedImage;import jav...原创 2020-07-21 22:34:05 · 1158 阅读 · 0 评论 -
超级马里奥游戏开发二(键盘监听问题)
在上一篇文章中的项目存在一个细节问题:长按→,然后按下↑后松开,此时→没有松开但是→检测不到pressed了。 键盘监听事件是单线程的,无法识别两个按键同时按下的监听事件。 当第一次按下→的时候,pressed方法里→被检测到,再按下↑的时候,pressed方法里↑被检测到,↑松开后虽然→没有松开,但是pressed方法只能检测到↑或其他新按下的键,没有松开的→不能被检测到。 当→松开时released可以检测到。为了解决这个问题,可以利用还可以检测到的released方法。这里经宇哥提点原创 2020-07-21 10:03:36 · 439 阅读 · 0 评论 -
超级马里奥游戏开发一(键盘控制游戏角色)
要绘制马里奥角色,需要知道角色的位置、此时的图片以及一些有关运动的信息,马里奥角色还需要有向左向右移动和跳跃的方法,因此我们将角色封装成一个类①首先我们需要角色的位置坐标,为了不让角色跑到窗口外面去还需要知道窗口的大小②马里奥的不同的动作会对应不同的动作集合(向左、向右、原地跳跃、向左跳跃、向右跳跃、向左停止、向右停止),我们用一个List来存储,用index表示此时应该显示第几张图片原创 2020-07-20 10:18:38 · 922 阅读 · 0 评论 -
线程小球(双缓冲优化)
为什么用双缓冲在制造小球运动效果的时候,首先是用小球色画出小球t时刻所在的位置,然后t+tsleep时刻用背景色擦除t时刻小球,用小球色画出该时刻状态的小球,这样就导致了一帧一帧的切换。所以小球运动一次至少有三次绘图调用repaint。这样绘制的图像刷新太快,会出现屏闪现象。什么是双缓冲?用序列的操作模拟瞬间或者同时发生的事情。通俗地讲就是一个后台缓冲来接受数据,当填充完整后交换给前台缓冲,这样就保证了前台缓冲里的数据都是完整的。要点:1,一个双缓冲类封装了一个缓冲:一段可改变的状态。这.原创 2020-06-01 08:55:16 · 579 阅读 · 0 评论 -
线程使用介绍和应用(运动的小球)
小球彼此之间相互独立,它们的活动是同时发生的小球之间会发生碰撞,需要互相知晓彼此的位置信息,因此共享一份信息Frame上运动着多个ball,Frame管理它们的活动和信息可将Frame作为进程,每产生一个小球,生成一个线程来进行管理。因此Frame是爸爸(进程),家里每多一个宝宝(ball),爸爸就请一个保姆(线程)来看管,爸爸会给保姆安排一些基本的工作和对宝宝的各种活动的处理方式,爸爸掌握着所有宝宝的活动和情况和信息。原创 2020-05-27 20:34:43 · 721 阅读 · 0 评论 -
多线程游戏
1.程序、进程、线程①程序存在硬盘里面的文件,固定文件,包含(代码,素材,配置文件……)②进程 一个程序从载入内存,进程启动,运行,到结束运行/使用中的程序③线程进程>线程 CPU 双核四线程 六核六线程线程可以说是进程的一个小任务,一个进程可以有多个线程游戏——王者荣耀 :代码,图片素材,运行:图片需要在屏幕上绘制出来,技能引起数据变化2.java如何实现线程Thread类:继承于Runnalble类①继承②重写run方法③使用线程 -.原创 2020-05-20 20:54:30 · 1580 阅读 · 0 评论 -
java仿QQ通信项目四(客户信息和客户端获取好友列表)
java仿QQ通信项目四添加好友的流程: - [ ] 客户端1通过JKnum账号查找到好友(查找好友的方法)此时会发送好友查找信息给服务器 - [ ] 服务器端在DaoTools信息库内查找对应JKnum账号的好友2并获得其昵称和头像,发送好友查找应答消息给客户端1 - [ ] 客户端1发送好友添加信息给客户端2,消息包内包含客户端1的昵称和对客户端2的分组名 - [ ] 客户端2收到好友添加消息,适时回复,根据验证信息,客户端2发送好友申请应答消息给客户端1: ①若同意: 将客户端1添加到原创 2020-02-15 15:34:50 · 959 阅读 · 0 评论 -
java仿QQ通信项目实现三(服务器端与客户端连接断开的流程)
在这一篇我们来实现剩余的消息类型:退出消息格式totallen=13(消息头)+提示消息长度(String)type=0x20dest为0手动退出,为1异常断开src=发送方JKnumnotice=(String)提示退出原因package MSGType;public class OffServiceMsg extends MSHead{ private String...原创 2020-02-10 17:24:38 · 573 阅读 · 0 评论 -
java仿QQ通信项目实现二
java仿QQ通信-(客户端)上一节我们实现了通信服务器端,这一节我们一起来完成客户端的代码。将客户端封装为一个类:首先每个客户端有一个Socket连接对象。假如我们要和服务器建立一条通信管道,这个对象将是客户端接收信息的端口。这里的组赛机制是客户端不断从服务器读取信息,因此我们应该将读取信息放到独立的线程中。在这里插入代码片客户端通过ip地址和端口连接服务器,按照通信协议,我...原创 2020-02-10 11:55:18 · 636 阅读 · 0 评论 -
java仿QQ通信项目实现一
java仿QQ通信-(服务器端)我们都使用QQ,在QQ列表里面我们可以任意选择好友聊天,把聊天的好友看成一个对象,我们的聊天活动就像是在两个对象之间建立了一条管道,它们之间可以互相发送消息数据。完成不停对象间的数据传输需要我们使用 java Socket :百度百科我们的QQ平台就像一台大的服务器,它不但要负责将来自用户的信息发送给正确的用户对象,还要管理着所有用户的信息,响应用户...原创 2020-02-10 10:45:13 · 2297 阅读 · 2 评论