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"));


五、结语


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

相关文章
|
11天前
|
Java Android开发
贪吃蛇【小游戏】(Java课设)
贪吃蛇【小游戏】(Java课设)
14 0
|
18天前
|
Java
java通过commons-fileupload实现多张图片的上传(servlet)
java通过commons-fileupload实现多张图片的上传(servlet)
20 2
|
18天前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
13 2
|
21天前
|
Java
java面向对象高级分层实例_实体类
java面向对象高级分层实例_实体类
10 1
|
4天前
|
Java
java_键盘录入、随机数
本文介绍了Java中键盘录入和Random类的使用。键盘录入用于从用户那里获取数据,通过导入`java.util.Scanner`,创建`Scanner`对象,调用`nextInt()`或`nextDouble()`读取整数和小数,`next()`读取字符串。Random类用于生成随机整数,导入该类后创建对象,调用`nextInt(int bound)`生成[0, bound-1]范围内的随机数。在JDK17及以上版本,可以使用`nextInt(int start, int end)`生成[start, end)范围的随机数。常见应用包括猜数字游戏和随机点名。
10 0
|
11天前
|
Java Android开发
贪吃蛇小游戏【小游戏】(Java课设)
贪吃蛇小游戏【小游戏】(Java课设)
12 1
|
11天前
|
Java Android开发
日历/万年历【小游戏】(Java课设)
日历/万年历【小游戏】(Java课设)
16 1
日历/万年历【小游戏】(Java课设)
|
21天前
|
Java
java面向对象高级分层实例_测试类(main方法所在的类)
java面向对象高级分层实例_测试类(main方法所在的类)
8 1
|
21天前
|
Java 数据库
java面向对象高级分层实例_数据库操作类
java面向对象高级分层实例_数据库操作类
9 1
|
21天前
|
Java
java面向对象高级分层实例_BaseDao
java面向对象高级分层实例_BaseDao
12 1