一、前言
在上一篇文章中我们介绍了如何移动图片,但是我相信有很多小伙伴跟我一样玩了半天都没办法复原,因为没有一个参照的完整图片,所以本文将来实现这个能够查看完整图片的功能。
二、功能介绍
当我们点击一个按键的时候,只要摁住不放就能看到完整图片,当我们松开按键的时候就又回到游戏界面,实现一个 " 查看完整图片 " 的功能
三、步骤
由于在移动和图片中我们已经添加了键盘监听,也继承了键盘监听的接口,那么我们只需要在重写方法内输入我们的代码即可
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"));
五、结语
有了前面的基础,写这个功能应该相对更加简洁,接下来实现作弊码和判断胜利的功能