package com.gz.game;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Game {
// 定义数组存储按钮
static JButton[] jbt = new JButton[25];
//定义变量存储图片路径
static String Url="";
/**
* @param 开灯游戏
*/
public static void main(String[] args) {
//创建音乐对象
GameSound gs = new GameSound();
//调用播放方法
gs.playBgSound("music/shuang.mp3");
// 1.创建窗体对象
JFrame jf = new JFrame();
// 1.2设置大小
jf.setSize(300, 400);
// 1.3设置居中 null
jf.setLocationRelativeTo(null);
// 1.4设置标题
jf.setTitle("开灯游戏1.2");
//关闭窗体结束程序
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/********* 游戏开始需要的组件 *******/
// 2.得到游戏需要的组件
// 2.1创建按钮组件和文本组件
JButton jb = new JButton("开始");
JLabel jlstart = new JLabel("重新开始");
//给开始添加事件
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
for (int i = 0; i < jbt.length; i++) {
jbt[i].setIcon(new ImageIcon("src/img/1.png"));
}
}
});
// 2.2创建面板组件
JPanel jpup = new JPanel(); // 分为上面板
JPanel jpdown = new JPanel(); // 分为下面板
/********** 在面板添加25个按钮 ********/
// 3.设置面板布局
jpup.setLayout(new GridLayout(5, 5));
// 2.3添加25个按钮 ...
for (int i = 0; i < 25; i++) {
jbt[i] = new JButton(new ImageIcon("./src/img/1.png"));
// 通过内部类属性得到id
jbt[i].setActionCommand(String.valueOf(i));
// 得到图片路径
Url =jbt[i].getIcon().toString();
// 监听事件 处理图片点击
jbt[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 得到下标
int num = Integer.valueOf(e.getActionCommand());
if (num == 0) {
// 根据下标改变图片
chages(jbt[num]);
chages(jbt[num + 1]);
chages(jbt[num + 5]);
} else if (num == 4) {
chages(jbt[num]);
chages(jbt[num - 1]);
chages(jbt[num + 5]);
} else if (num == 20) {
chages(jbt[num]);
chages(jbt[num - 5]);
chages(jbt[num + 1]);
} else if (num == 24) {
chages(jbt[num]);
chages(jbt[num - 1]);
chages(jbt[num - 5]);
} else if (num > 0 && num < 4) {
chages(jbt[num]);
chages(jbt[num - 1]);
chages(jbt[num + 1]);
chages(jbt[num + 5]);
} else if (num > 20 && num < 24) {
chages(jbt[num]);
chages(jbt[num - 1]);
chages(jbt[num + 1]);
chages(jbt[num - 5]);
} else if (num % 5 == 0) {
chages(jbt[num]);
chages(jbt[num - 5]);
chages(jbt[num + 1]);
chages(jbt[num + 5]);
} else if (num % 5 == 4) {
chages(jbt[num]);
chages(jbt[num - 5]);
chages(jbt[num - 1]);
chages(jbt[num + 5]);
} else {
chages(jbt[num]);
chages(jbt[num - 5]);
chages(jbt[num + 1]);
chages(jbt[num + 5]);
chages(jbt[num - 1]);
}
}
});
// 添加按钮到面板
jpup.add(jbt[i]);
}
// 2.4添加组件到窗体中e
jpdown.add(jb); // 添加开始按钮
jpdown.add(jlstart); // 添加文本文字
// 2.5.将布局的面板添加到窗体进行显示
jf.add("South", jpdown); // 添加上面板
jf.add(jpup); // 添加下面板
// 1.5显示窗体
jf.setVisible(true);
}
// 定义改变图片的方法
public static void chages(JButton jb) {
// 判断图片标识
if (jb.getIcon().toString().equals(Url)) {
jb.setIcon(new ImageIcon("./src/img/2.png"));
} else {
jb.setIcon(new ImageIcon("./src/img/1.png"));
}
}
} |
|