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