java实战项目
文章平均质量分 84
记录java学习过程中的每个具体项目
不愿透露姓名的Y同学
这个作者很懒,什么都没留下…
展开
-
Java之通信画板
本次我们主要实现了画板之间的通信,客户端画板可以转递一条直线给服务端画板,服务端画板也可以传递一条直线给客户端画板,两端直线显示在相同位置上,效果如下:涉及到的知识点主要有以下两点:1,Java Socket通信。2,Int数据和byte数据的转换。一,Socket通信1,TCP/IP协议TCP是一种面向连接的、可靠的、基于字节流的传输层协议,IP是互联网协议,Java Socket就是基于TCP/IP的网络通信。我们在进行连接时要知道主机地址和端口号,主机地址就类似于知道机器的位置,端口号原创 2021-03-22 11:05:07 · 452 阅读 · 1 评论 -
Java之简易版飞机大战
本篇博客主要利用java实现了一个简易版的飞机大战,适合初学者练手,所涉及到的知识主要有以下几点:1,面向对象。飞机大战的功能是针对每个英雄机、子弹和敌机对象实现的。2,数组。由于敌机和子弹对象有多个,创建一个List数组用来存储相应对象,之后针对数组中的对象进行操作。3,图片。站在用户的角度,我们看到的是一张张飞机、子弹的图片,对对象的操作要和相应的图片联系起来。4,线程。一,游戏规则:当英雄机发射的子弹击中敌机,敌机产生爆炸效果并消失,每击中一架敌机分数+10。二,游戏效果:三,游戏制原创 2021-03-02 13:59:24 · 2803 阅读 · 10 评论 -
Java之小球碰撞反弹
本次我们主要实现了三个功能:1,小球碰壁反弹、小球相互碰撞反弹。2,使用缓冲绘图解决闪屏问题。3,增加暂停按钮,实现界面动、停控制。一,创建一个类ShowUI实现窗体界面package com.yzd0126.BallsRebound;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Graphics;import java.util.ArrayList;import java.util.List;im原创 2021-01-27 16:22:14 · 5233 阅读 · 0 评论 -
线程+动态数组=运动的小球
一,线程之前我们执行的任务都是顺序执行,下一个任务要等上一个任务执行完之后才可以执行,一旦任务多了起来,那么等待的时间将会很久,于是我们考虑能否让多个任务同时执行,不用等待上个任务结束就能开启下一个任务?java提供了并发机制,而将并发完成的每一件事称为线程(Thread)。以我们的电脑为例,我们可以同时听歌、聊天、下载文件,这种并发机制大大提高了我们的用户体验。二,队列...原创 2021-01-22 11:35:52 · 264 阅读 · 4 评论 -
Java第n次入门之递归山脉的实现
一,递归山脉的要求给定左右两个点X1(Lx,Ly),X2(Rx,Ry),一个y轴动态范围-range~range,在该动态范围内随机选取一个数num,选取一个中点M,中点的横坐标为(Lx+Rx)/2,纵坐标为(Ly+Ry)/2+num,连接左端点与中点、中点与右端点。如此反复,再分别取左端点X1和中点M的中点、中点M和右端点X2的中点,range范围按一定比例缩小,连接两点形成递归山脉。二,创新点之前我们调用递归的时候每循环一次都调用一次,后面的结果覆盖前面的结果,形成最后的效果,这造成了之前的画的原创 2020-12-30 16:22:39 · 217 阅读 · 3 评论 -
Java第n次入门之画板重绘
一,为什么要重绘?在上一篇博客中,我们实现了画板的功能,但是我们发现如果将画板窗体从屏幕中移除或者改变画板窗体,会发现原来在画板上画的图形消失了,这就降低了用户体验,那么出现这种现象的原因是什么呢?二,为什么会出现图形消失的原因?首先我们要明白的是当我们将画板窗体移除或者改变画板窗体大小的时候都是画板的Frame框架在不断调用paint()方法。我们写的代码中有给Frame框架增加组件的部分,而这些组件包括框架就是通过paint方法将这些组件“画”到了我们的电脑屏幕上才让我们看到了这些组件。那么当我们原创 2020-12-11 20:34:52 · 317 阅读 · 0 评论 -
Java第n次入门之画板的实现
本次我们主要实现了一个画板的工具,具体功能有画固定图形(直线、矩形等java自带画图方法)、曲线、立体图、分形图、概率画图、递归画图。下面我们逐步介绍。一,窗体及按钮的可视化实现java提供了一个窗体类JFrame,按钮类JButton,使用这些类创建对象可以快速地实现窗体和按钮的可视化 JFrame jf = new JFrame("画板");//创建窗体对象jf //窗体初始化属性 jf.setSize(800,600);//窗体大小,横x纵y jf.setLocationRelativ原创 2020-11-30 11:22:16 · 539 阅读 · 4 评论
分享