Java实现拼图小游戏(7)——查看完整图片(键盘监听实例2)

一、前言

在上一篇文章中我们介绍了如何移动图片,但是我相信有很多小伙伴跟我一样玩了半天都没办法复原,因为没有一个参照的完整图片,所以本文将来实现这个能够查看完整图片的功能。

二、功能介绍

当我们点击一个按键的时候,只要摁住不放就能看到完整图片,当我们松开按键的时候就又回到游戏界面,实现一个 " 查看完整图片 " 的功能

三、步骤

由于在移动和图片中我们已经添加了键盘监听,也继承了键盘监听的接口,那么我们只需要在重写方法内输入我们的代码即可

1.清除原先图片

this.getContentPane().removeAll();

2.添加图片

  • 在JLable里添加完整图片
  • 设置图片位置和大小
  • 设置图片边框(可以没有)
  • 将JLable添加到界面中
		//添加完整图片
        JLabel jlb = new JLabel(new ImageIcon("F:\\IDEA\\PuzzleGame\\image\\image\\animal\\animal3\\all.jpg"));
        //设置图片位置以及宽高
        jlb.setBounds(85,115,420,420);
        //设置边框
        jlb.setBorder(new BevelBorder(0));
        //将图片添加到界面
        this.getContentPane().add(jlb);

3.添加背景图片

这个前面已经讲解过了,这里就不多做阐述,直接上代码

 		//添加背景图片
        JLabel background = new JLabel(new ImageIcon("F:\\IDEA\\PuzzleGame\\image\\image\\background.png"));
        //设置背景图片位置及大小
        background.setBounds(42,21,508,560);
        //将背景图片添加到界面中
        this.getContentPane().add(background);

4.刷新

this.getContentPane().repaint();

5.新建方法

  • 将上述添加图片和背景图片打包成一个方法,命名为initAllPicture

6.重写方法

  • 设定一个字母,长按该字母即可转跳查看完整图片(keyPressed)
  • 当松开时,转跳回原来界面(keyReleased)
@Override
    public void keyPressed(KeyEvent e) {
        int code = e.getKeyCode();
        if(code == 65){
            System.out.println("显示所有照片");
            initAllPicture();
        }
public void keyReleased(KeyEvent e){
···
else if(code == 65){
            System.out.println("返回游戏界面");
            initImage();
        }
}

四、优化代码

这里我们只是引用了一张图片:picture3,如果后续想要修改的话每个路径里都要修改,会很麻烦,所以我们把相同路径的提取出来,然后用一个变量去接收
这里我们来演示一下:

String path = "F:\\IDEA\\PuzzleGame\\image\\image\\animal\\animal3\\"

当我们要修改图片的时候,只需要改变path中的路径即可
我们就可以优化代码了

//添加完整图片
JLabel jlb = new JLabel(new ImageIcon(path+ "all.jpg"));

五、结语

有了前面的基础,写这个功能应该相对更加简洁,接下来实现作弊码和判断胜利的功能

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值