自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Java 动态数组 泛型

→ 在 java 中所有的基本数据类型(int ,long ,short ,byte ,char ,double ,float ,boolean ),都有对应的包装类,数据被包装成了一个 Integer 值。这时候如果添加整型数据是没有问题的,但添加字符等其他类型就会报错。※问题:添加数据时 10\20\30 均为 int 类型数据,但方法中参数类型是 Object ,这似乎矛盾?把 E 看作一个参数,接下来的方法中的数据类型要和它匹配,如。泛型:把添加到动态数组(集合)中的数据形参化。

2025-08-30 15:43:25 152

原创 Java 动态数组扩容优化

这是因为之前设计的方法是:每加一个数据每调用一次 add 方法,我们就会创建新的数组,在原来的基础上变长一个单位,然后 copy 原有的数据。尤其是像这样要添加很多数据的情况,随着这个添加的数据操作越来越频繁,越来越多,后面每加一个数据都会极其困难。由于初始长度固定为10但不确定数组中到底存储了几个数据,所以定义一个整型变量 size 表示有效数据的个数,当 size 与数组长度相等时表明数组已满需要扩容。所以现在的解决方法是减少它扩容的次数,这样效率就会提高。对比会发现内置的动态数组运行速度快得多。

2025-08-24 23:04:41 153

原创 Java 动态数组

②把删除位置后面的数据拷贝过来,但所有数据的位置要向前移动一位。动态数组可以随着数据的增加扩容,也可以随着数据的减少缩小空间。先整一个初始数组保存数据,由于一开始没有要存储的数据所以数组长度给个 0 就行。将原来的数组的数据拷贝过来需要遍历原来的数组,然后更新数组的内存地址。(B),将 A 中的数据拷贝到 B ,后续的操作也是在 B 上进行。先写下标越界的判断,设置新数组(删除数据的话数组就比原来短1)来一个新的长度更长的数组,这里设置比原数组长1。插入数据需要:①把插入位置前面的数据先拷贝过来。

2025-08-23 13:30:46 446

原创 Java 五子棋小游戏

后,单独有一个通道调用 paint 方法画出组件,期间绘制棋盘的代码也在执行,但是这段代码很短,导致 paint 方法还没执行完(窗体还没画出来)棋盘代码就已经执行完了。写到这里报错 NullPointerException(空指针报错),因为现在只是定义了数组还没有传递,在GameUI 中把 GameListener 中的数组取出传递给 MPanel 类。先确定的相关数值:18*18的棋盘,水平、竖直线各要画19条,棋盘最左上角的点(x0,y0),棋盘格子的长度25px,棋子大小16px。

2025-08-04 00:29:29 287

原创 Java 绘图工具(六)

👉所有 swing 组件都有一个 paint 方法,绘制组件本身。改变窗体状态会导致所有组件包括窗体本身重新调用 paint 方法。4、继承绘制图形的组件 JPanel ,重写该组件的 Paint 方法。将窗体隐藏后再显示或手动改变窗体的大小,会发现画好的图形消失了。1、先保存画好图形的数据(坐标、按钮内容),以保存直线为例。2、在松开鼠标的方法中,创建Shapes 对象保存直线数据。3、定义Shapes 数组保存图形对象。根据图形对象设计对应的类。6、循环遍历保存的图形的对象。

2025-07-27 14:33:51 189

原创 Java 类的继承

日常生活中存在包含关系的对象或事物,在程序中把它理解为是一种继承关系(如:水果与苹果、香蕉,图形与三角形、矩形 等等),类似于父和子的关系,子类可以继承父类中的一些属性和方法,实现代码复用,避免代码累赘。eg. 现在有一个动物类(父类),动物会吃饭和发出叫声,这是大部分动物共有的。如果现在有猫类和狗类(两个子类)继承吃饭和叫声方法,但是具体到这两个子类时,要根据吃的东西和叫声的不同进行修改。Manage 类中并没有定义属性和方法,但子类继承了父类的属性和方法,所以可以直接用。如果要保留父类原有的方法。

2025-07-25 12:28:27 319

原创 Java 绘图工具(五)

原来是从窗体获取画笔,现在改成从 drawPanel 获取。将按钮放到功能面板上。问题:画线时线会覆盖按钮。优化:有一个独立的画图区。

2025-07-24 23:58:07 218

原创 Java 绘图工具(四)

2、让橡皮擦在使用完后松开鼠标时,能够使画笔颜色恢复为黑色。1、重新定义一个变量保存选择的颜色,设置当前画笔的颜色。看不到画出的图形(画出的线和橡皮擦一样是白色)放一个提前准备好的代码 ↓↓↓。在使用过橡皮擦后再画图发现。画出的线和橡皮擦一样粗。

2025-07-23 00:30:46 229

原创 Java绘图工具(三)

2、曲线是由拖动鼠标时经过的点组成的,所以定义变量 x4,y4 表示经过的点。一、多边形绘制(思路和三角形相似,先画出一条边,通过点击画出剩下的边,最后双击使首尾相连)三、绘制线段的过程中线段可见(用白线覆盖黑线,只剩下最后要的那条线)1、设置橡皮擦按钮,实现接口,重写抽象方法。2、改变窗体的背景颜色,让它变成纯白。二、曲线绘制(拖动鼠标产生曲线)实现接口,重写接口中的抽象方法。3、设置橡皮擦大小(强制转型)三、绘制线段的过程中线段可见。1、设置曲线按钮,这里用到。四、橡皮擦(白色曲线)

2025-07-21 13:09:35 397

原创 Java绘图工具(二)

2、由于只这样写会使得 在画线后点击时,会重新执行一遍mousePressed 和 mouseReleased 中的内容,使得三个点的坐标重合,所以这里使用了。通过一条线和一个点确定三角形,则除了线的两个端点的坐标参数 x1,y1,x2,y2 外,还需要点的坐标的参数 x3,y3 所以。然后再在 mouseClicked 的判断中让 flag 重新变为 1,这样就又可以画下一个三角形了。学习如何添加功能按钮(形状绘制按钮,基础颜色选择按钮)否则的话效果是👇👇👇,无法画出下一个三角形。

2025-07-18 21:50:11 139

原创 Java绘图工具(一)

都属于是局部变量,写出来会报错,所以就直接定义全局变量,之后的 x1=e.getX( );1、用 getGraphics() 获取并定义一个和返回类型(Graphics)同类型的变量来保存数据。ps:图形内容显示在哪个组件上,画笔就从该组件上获取,这里明显从窗体 jf 上获取。直线绘制调用 drawLine(),所以要获取所需的参数。作用域:一对 { } 就是一个独立的作用域。1、在方法(作用域)中定义的变量。2、在子类中保存传递过来的画笔对象。并在子类中实现接口并重写接口中。制作绘图工具需要用到。

2025-07-17 00:02:58 247

原创 Java 监听器

关于Java监听器的使用

2025-07-14 15:26:42 256

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除