【Java】添加图片

一、介绍

在刚刚我们已经在界面中添加了菜单,接下来就开始学习如何在界面中添加图片。

有的同学可能会认为,下面是一张大的图片,再切割成N个小份。

其实并不是这样,在游戏中,下面这个是 15张 小的图片,还有一个空白而已。

image-20240419215922536

在后面,当我们学习完移动后,实际上就是移动这里小图片的位置。

图片所对应的类是 ImageIcon,因此一张图片就会对应一个 ImageIcon 的对象,15张图片就应该对应 15个ImageIcon 的对象。

但是我们现在不能直接将 ImageIcon 直接添加到 JFrame 界面中,因为我们还需要给图片进行 宽高、位置等 设置。

因此需要先把图片放到一个 JLabel 中。

JLabel 你可以把它理解成是一个管理者,它可以管理 文字和图片

它在管理图片的时候,就可以对图片的宽高、位置、边框进行设置,代码写起来也很简单。


二、步骤

首先创一个 ImageIcon 的对象,并指定图片在电脑中的位置。

再创建一个 JLabel 的对象,把图片交给 JLabel,再把这个整体放到界面中即可。

此时图片就会成功的添加到界面 JFrame 中,默认是展示在界面的正中央。

image-20240420065440146

首先我们需要将图片素材全部添加到项目中。

本游戏使用到的图片都整理到了 素材的image

image-20240420071242964

直接复制 image 这个文件夹,

image-20240420071532240

打开IDEA,选中模块名,直接 ctrl + v 粘贴进去,点击OK即可。

image-20240420071628843

注意不要粘贴错了,是粘贴在当前模块下。

找到 image ——> animal ——> animal3 ——> all.jpg,这个是游戏的完整图。

前面的 1.jpg ~ 15.jpg 就是我把这张图去分隔成了15个小方格,和一个留白。

image-20240420071942219

每张小图片的大小都是固定的,看右上角。

它的宽高都是 105 * 105,单位是像素

image-20240420072218339


三、代码示例

1)思路分析

找到 GameJFrame,当我们创建 GameJFrame 对象的时候,就表示游戏的窗体就已经出来了。

然后对这个窗体进行一些初始化、添加菜单,添加完菜单后,我们要在下面去初始化图片,相当于就是将图片加载到界面当中。

这里我们通过 initImage() 方法,然后 alt + 回车 ,选择第一个 Create method 'initImage' in 'GameJFrame' ,即利用IDEA帮我们创建方法,方法的名字叫做 initImage,在当前的 GameJFrame 类中。

image-20240420072720100

此时在下面就自动生成好了方法。

image-20240420072755733

然后给方法加上注释

// 初始化图片
private void initImage() {
}

现在,我们就可以添加图片了。

但是要注意的是,图片不是直接添加到界面中的,而是需要先创建 ImageIcon 的对象;第二步还需要创建一个 JLabel 的对象(管理容器);第三步:将管理容器添加到界面中。

// 初始化图片
private void initImage() {
    // 创建一个图片 ImageIcon 对象

    // 创建一个 JLabel对象(管理容器)

    // 把管理容器添加到界面中
}

如果你不知道ImageIcon对象如何创建,你可以:① 看源码;② 看API帮助文档


① 看源码

这里就来看源码。ctrl + N 搜索 javax.swing 包下的 ImageIcon

image-20240420073421652

然后 ctrl + F12 找它的构造方法,可以看见它有很多很多的构造方法。

image-20240420073555041

如果不知道用谁,可以先来看最简单的空参构造。

空参构造肯定不行,因为你要想,我创建一个图片对象,那肯定要将图片在电脑上的位置告诉它。

image-20240420073737401

有没有一个构造方法中直接传入一个字符串,表示图片的位置呢?

此时可以找到有一个参数是 String 的构造方法

image-20240420073853315

点进来看一下,形参类型是 String,形参的名字是 filename(文件名)

image-20240420073915964

看到这我们就知道了,我们可以把图片路径用这个构造传递进去。


② 看API帮助文档

根据如图步骤搜索,同样也可以找到 形参是String的构造方法

image-20240420074214365


2)创建 ImageIcon 对象

首先来复制图片的路径,右击本地图片 ——> Copy Path/Reference… ——> Absolute Path,这个就是图片的完整路径

image-20240420074626004

然后调用ImageIcon的构造方法将路径传入进去。

这句话的意思是:我要把 E:\\learning_notes\\JAVA\\code\\basic-code\\puzzlegame\\image\\animal\\animal3 路径下的 3.jpg 这张图片加载到内存中。

// 创建一个图片 ImageIcon 对象
ImageIcon icon = new ImageIcon("E:\\learning_notes\\JAVA\\code\\basic-code\\puzzlegame\\image\\animal\\animal3\\3.jpg");

3)创建 JLabel 对象

表示的是:这个管理容器就管理括号中的内容

// 创建一个 JLabel对象(管理容器)
JLabel jLabel1 = new JLabel(icon);

4)把管理容器添加到界面中

// 把管理容器添加到界面中,调用JFrame的add方法
// 添加进去后,默认会放在页面的正中央
this.add(jLabel1);

5)调试

右键运行App,可以看见图片成功展示。

image-20240420081420738
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值