目录
涉及知识:Java System.exit() 退出程序
在java 中退出程序,经常会使用System.exit(1) 或 System.exit(0),其中返回的status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等
八、查看完整图片,作弊码 和判断胜利
查看完整图片
1.指定一个键 来实现查看功能 ——” A “
按住A不松开,显示完整图片,使用键盘监听中 ,调用 keyPressed;
(定义一个变量 记录图片加载路径,为后面切换图片提供便利)
//按下不松时,调用这个方法
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(code == 65) {
//把界面所有的图片全部删除
this.getContentPane().removeAll();
//加载一张完整图片
JLabel all = new JLabel(new ImageIcon(path + "all.jpg"));
all.setBounds(83,134,420,420);
this.getContentPane().add(all);
//加载背景图片
//添加背景图片
JLabel background = new JLabel(new ImageIcon("..\\puzzllegame\\image\\background.png"));
background.setBounds(40, 40, 508, 560);
this.getContentPane().add(background);
//刷新界面
this.getContentPane().repaint();
}
}
松开A显示随机打乱的图片,在keyReleast方法中添加一个else-if语句
else if (code == 65) { initImage(); }
作弊码 (一键通关)
按一下W键,直接胜利,在keyReleast方法中添加一个else-if
else if (code == 87) {
data = new int[][] {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,0},
};
initImage();;
}
判断胜利
判断胜利,也就是判断二维数组中的数字是否按顺序进行排列,如果按照顺序排列,则显示胜利的图片
实现步骤:
1.定义一个正确的二维数组win
2.在加载图片时,先判断一下二维数组中的数字顺序是否与win数组中相同
(创建一个方法)
3.相同则展示胜利的图标,否则不展示
4.胜利后,不再允许图片移动
结果展示:
九、计步功能和菜单业务实现;
计步功能
1.定义一个变量 int step = 0, 每上下左右移动一次step + 1;把计数器自增写在keyReleast方法上下左右移动的if语句中
2.intImage方法中创建一个JLabel对象,设置合适位置,并将其添加在隐藏容器中
结果展示 :
菜单业务实现
菜单功能下的里面的
重新游戏
1.绑定事件(总的操作)
创建选项下面的条目对象(重新游戏 重新登录 关闭游戏)取出来放置方法外;
2.重新打乱二维数组中的数字
3.计步器清零
4.重载图片
注意:计步器清零在重载图片之前
在之前写的打乱二维数组中,只记录了0的位置并没有把他添加到二维数组中所以会造成宠幸游戏后,没有空白快的问题,如:
因此需要把else去掉
重新登录
1.绑定事件 2.关闭当前的游戏界面 3.打开登录界面
关闭游戏
1.绑定事件 2.结束虚拟机,关闭所有界面
公众号
else if (obj == accountItem) {
System.out.println("公众号");
//创建一个弹框对象
JDialog jDialog = new JDialog();
//创立一个管理图片的容器对象JLabel
JLabel jLabel = new JLabel(new ImageIcon("image\\屏幕截图 2024-03-19 155928.png"));
jLabel.setBounds(0,0,240,248);
//添加到弹框中
jDialog.getContentPane().add(jLabel);
//给弹框设置大小
jDialog.setSize(344,344);
//让弹框置顶
jDialog.setAlwaysOnTop(true);
//让弹框居中
jDialog.setLocationRelativeTo(null);
//弹框不关闭则无法操作下面的界面
jDialog.setModal(true);
//让弹框显示出来
jDialog.setVisible(true);
}