自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java】批量处理图片

首先创造一个对图片进行处理类的对象,其中的成员方法包含上面的图片处理和图片转化成二维数组,File类其实指的是文件和文件夹,通过图片所在的文件夹对应的路径来创建File对象file,但是file中的内容仍然是文件夹,还要继续打开文件夹,通过for循环来访问每一张图片,输出图片的路径和二值编码,并创建动态数组来存储每张图片的二值编码和图片名字。比如我想查找其他图片和汽车中的第14张图片对比后的相似度差值,先取出对应的二维数组,然后转为二值编码,遍历存储的每张图片,然后将相似度存入动态数组中。

2025-04-04 20:10:12 146

原创 类与对象——继承和接口

我们发现不同的类中有一些功能和行为是相同的,所以总的来说接口是以行为进行分类的,通过定义一个接口就可以对这些行为进行设计,比如动作监听器ActionListener和鼠标监听器MouseListener它们就是通过识别我们在添加其的类中的不同操作进行反馈的,比如我在窗体上按按钮通过动作监听器进行弹窗,我在窗体按压鼠标后松开通过鼠标监听器来实现绘画。我们要实现接口就要使用具体的类来继承接口,一个类可以继承多个接口,同时继承完接口之后类中要对接口的抽象方法进行重写,保证抽象方法变为具体的方法。

2025-03-28 20:07:22 181

原创 类与对象——封装

这个指的就是名称为n的int类型常量,常量的初始化赋值是通过类的构造方法或者代码块中进行赋值来进行赋值的,用构造方法来进行赋值就要让所有的构造方法都有一个赋值的过程,编写构造方法的方法名为类名,public+类名+(){ },每个类都会自带一个隐式无参数构造方法,我们在编写的时候就是在重写类的构造方法,在编写时还可以编写多个方法,通过传入参数的不同来调用不同的构造方法,一般我们可以通过传入参数对类中的成员属性进行赋值。理解封装的概念,可以把这个词给拆开,封是限制的意思,装则是包装。

2025-03-21 18:41:31 384

原创 代码中那些你以为不是很重要的细节之运算符与逻辑控制

赋值运算符 = += -= *= /= %= ++ --,等号的赋值是将右边的值给左边变量名,a+=10可以写作a=a+10,-=,*=,/=,%=都是如此,a++是a=a+1,++和--的处理的之都为一,但是它们在数据的前或者后关系着处理数据的顺序++a就是a先加上1再参与运算,a++是先参与运算在让a加上1。=,<,>,=>,<=,这些用于数据的对比,返回true或false,在string类型中比较使用字符串拼接时,使用==和equals的结果不同,比如。值1:值2,switch case。

2025-03-15 11:33:51 277

原创 【Java】开发环境及流程与跨平台特性实现原理

Java的一次编译到处运行最主要和Java虚拟机有关系,在不同操作系统中有着不同版本的Java虚拟机,并且我们编写的代码实在Java虚拟机上运行的,也就是说我们编写的代码和操作系统中间隔了个Java虚拟机。但是无论Java虚拟机是什么版本,它对Java程序运行的标准是一样的,所以无论是什么样的环境对应着什么样的Java虚拟机,Java字节码都可以在Java虚拟机上运行,而Java虚拟机又可以在操作系统上运行,这就实现了Java字节码可以在任意的环境中运行。那么如何实现Java所说的一次编译,到处运行呢。

2025-03-08 12:50:12 239

原创 【Java】对图像的处理

首先我们先来了解电子三原色,电子三原色是红绿蓝,并且每个颜色的变化阶梯都有256阶,一个像素点可以看做一个灯珠,一个灯珠放出的颜色又由三原色组成,组合下来每一个像素点都可以组成一千多万种颜色,并且一个1980*1080的电子屏幕就有两百多万个这样的像素点,所以电子屏幕才能放映出色彩丰富的图片和视频。这是通过文件在电脑中的路径,从电脑中添加进我们创建的文件类型的变量中,然后记录文件中图片的高和宽,并且通过两个循环将图片中的像素值记录在二维数组中,这样我们就将图片中的数据记录下来了。

2025-01-14 21:04:47 158

原创 内存的存储

数组是一个线性的数据结构,由存储元素的类型,数组长度,数组变量名以及存储元素的内容组成。前面我们说过内存可以看做是线性存储的,那么无论是一维数组,二维数组还是三维数组在内存中都是线性存储的。对于一维数组int[ ] arr1来说int是元素的类型,中括号内是数组长度,对于二维数组int[ ] [ ]arr2来说int[ ]就是它存储的元素类型,中括号仍是数组长度。这样就可以将变量的类型和变量名同内存中存储变量内容的地址编码联系起来,于是我们在对变量进行处理时,就可以直接访问对应的内存地址,改变其中的内容。

2025-01-12 17:59:02 193

原创 【Java】五子棋的实现

接下来就是对输赢的判断,五子棋的规则是当白棋或黑棋在横向或竖向或斜向连成五颗棋就算胜利,由于斜向有两个方向,我们可以通过编写四个返回值为布尔型的方法来判断是否胜利。棋子是否连成五颗是通过最后一颗棋子来判断的,下列方法中n和m是最后一颗棋子在数组中的位置。number是与最后一刻棋颜色相同且连成一条不间断的线的棋子个数,比如上述代码就是通过判断最后一颗棋子的上方和下方的棋子是否与其连成至少由五颗相同棋子组成的竖线,斜向和横向是相同的道理。五子棋游戏在电脑上是由棋盘,棋子和输赢的判断这几部分组成。

2025-01-11 19:07:24 447

原创 【Java】仿真山的初步绘画

还有一些细节部分例如重写刷新方式和对执行动作的存储。首先创建一个类Shape,再在监听器接口中创建shape的动态数组存储绘画的图案,在重写刷新方式时调用。递归在java中有着很重要的作用,我们可以通过递归来绘制仿真山。首先我们先通一个绘画曲线例子来明白仿真山的绘画方式。这样画出来的曲线看起不就不顺滑。

2024-12-29 13:47:56 267

原创 【Java】利用递归和迭代创建图形

在Java中递归和迭代是两种重要的方法,它们之间也有着共同之处。递归是在创建方法时,在方法中调用它本身。迭代则是通过循环改变变量,再将变量放入方法或者函数中。但是递归还要设置合适的条件来避免无限递归。我们可以利用递归来画不断重复的图像,比如谢尔宾斯基地毯和谢尔宾斯基三角形。由于我们画图的方法是调用三角函数,这里x,y的初始化只是给x,y一个值并不会对图形产生影响,但是由于三角函数的值过小,所以要对画图的点的位置进行放大。这里要设置图形的最小值,防止无限递归下去,超出存储的空间。

2024-12-21 14:28:30 276

原创 【Java】如何在界面刷新后保留图案

每次当我们对界面扩大或缩小时,因为改变了界面的大小,界面就会刷新并且绘制在界面上的图案并不属于界面中的元素,当界面刷新时图案就会消失。为了解决这个问题,我们需要创建一个新的类继承原来的界面,并且重写刷新方式,让刷新后的界面也会显示出图案。这里要将画出的图案存入数组中,以便刷新时重新在窗体上显示出图案。这里添加的代码就相当于对原本的刷新方式进行了重写。

2024-12-13 18:08:35 180

原创 【Java】鼠标监听器和动作监听器的同时使用

接下来就是在方法中编写来处理我们想处理的值,比如画图板在进行图形选择时,可以先通过动作监听器获取按钮的文本,然后在鼠标监听器中进行识别,绘制相应的图像。在Java中想要创建界面,有时就会遇见上一个监听器处理完成后的值用于下一个监听器。例如画图板,鼠标监听器用来画图,动作监听器则用来选择图形类型和画图。由于这是两个不同的监听器,所以就有两个不同的事件:ActionEvent e和MouseEvent e。在编写方法中的内容前要明确哪些是全局变量要在不同的方法中使用,然后在编写方法中的内容。

2024-12-11 16:57:27 245

原创 【Java】画图板的简单实现

画笔就是图形渲染器,所以要在鼠标监听器中申请一个名为g的图形渲染器,并且让其指向界面中的图形渲染器,通过对g处理就可以对窗体对象中的图形渲染器进行处理,从而达到画笔的效果。接下来就是通过对鼠标监听器进行编辑来达到画图的效果,首先先申请4个整数,分别代表按下鼠标时的坐标和松开鼠标时的坐标。在Java中想要实现画图板,除了完成创建窗体对象,还要创建画笔,这就要通过鼠标监听器来实现了。在监听按下和松开的方法中要让我们创建的4个变量获取坐标,最后通过画面渲染器进行绘画,代码如下。

2024-12-08 12:05:45 193

原创 【Java】动态数组的实现

首先我们要先了解动态数组的原理是什么,在Java中动态数组主要是通过自动扩容机制来实现的,就是当我们添加元素时会识别是否超过数组的空间,如果没有就直接放入其中,但是如果超过了就会申请一个更大的数组,在把原数组的内容复制到新数组后向新数组中添加输入的元素。此时旧数组名指向的是新数组,后续对str数组的操作实际上都是在对新数组newOne进行操作,从而达到在使用旧数组名的情况下,向更大的空间中存入数据的目的,实现动态数组的存储。在编写代码中,我们常常要用到数组来存储数据,于是动态数组的实现就尤为重要。

2024-12-01 12:46:00 253

原创 【Java】登录注册界面的实现

我们要开发登录注册界面就要自己定义一个用户类型,用来创建用户数组并存放用户的数据。接下来就是在动监听器类中创建用户数组,当用户点击注册时用来存放信息并在点击登录时用来查找用户信息。注册时会出现用户重复注册,注册人数达到上限和成功注册三种情况,登录时则会出现密码错误,登录成功和用户不存在三种情况。学会登录注册界面的实现后,可以将其运用至各大网站和软件的注册平台例如邮箱的注册,学校官网的统一身份认证平台。在Java中对界面的开发要从用户的角度出发,所以在我们开发登录注册界面时也应该先明确在使用时会出现的情况。

2024-11-29 16:24:24 186

原创 【Java】按钮的监听处理的实现

为了实现按按钮的监听处理,我们在创建完按钮组件后,就要在按钮中添加动作监听器,表示为按钮的变量名.addActionListener(action),于是我们在按按钮时就会执行处于动作监听器中方法。Java是面向对象的语言,用来创建各式各样的界面,界面中组件按钮的作用就显得尤为重要,那如何实现通过按钮来操作界面呢。表示为当动作发生时方法中的内容就会被执行。完成动作监听后,我们就要明确发生动作后的操作比如按按钮后界面的变化,这时我们就要添加一个方法。并在其中中添加完成动作之后需要执行的代码。

2024-11-24 13:14:13 394

原创 【Java】登录界面的实现

下一步就是要创建一个函数showUI并在函数中添加窗体对象jf1和窗体对象中组属性和组件,我们一般需要设置窗体的标题,大小,在显示屏上出现的位置,关闭界面时操作,控制窗体内的组件的方式等属性。在创建软件包后,首先我们要申请Java.awt包和Java.swing包,其中Java.awt包是早期界面开发包,其可视化功能组件功能不完善,所以Java.swing也要同时使用。在创建完组件后我们就要添加到窗体对象中,可用对象名.add(创建好的组件对象),并将添加到窗体对象中的组件对象可视化。

2024-11-23 16:54:16 287 1

空空如也

空空如也

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

TA关注的人

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