swing设计扫雷心得,供大家参考,具体内容如下
最近学习swing学习之余做了一个小游戏:扫雷
1.前期设计
2.实现
其实完成这个游戏的核心就在于对数组的操纵,下面贴主要代码Main.java:
package first;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class Main extends JFrame implements ActionListener, MouseListener {
/**
* 义建
*/
private static final long serialVersionUID = 1L;
// 前期参数声明
JMenuItem JmiNew, JmiSave, JmiOpen, JmiExit, Jmichuji, Jmizhongji, Jmigaoji, JmishowInFo, JmiZiding;
Toolkit toolKit = Toolkit.getDefaultToolkit(); // 获取默认工具包。
Clipboard clipboard = toolKit.getSystemClipboard();// 获取系统 Calibrate
// 的一个实例,作为本机平台提供的剪贴板工具的接口。
//两个图标
ImageIcon icon = new ImageIcon("G:\\eclipse-workspace\\classTest_ThunderGame\\mine.png");
ImageIcon icon1 = new ImageIcon("G:\\eclipse-workspace\\classTest_ThunderGame\\flag.png");
private static int NUM = 1;// 这个NUM是雷数,可以编写一个程序来改变
// private static final int SNUM = 9;// 这个SNUM是扫雷的格数,可以编写一个程序来改变
private JButton[][] jb;
private int[][] map;
boolean[][] flags;
boolean[][] flag;
int coutTime;
// 声明connection对象
Connection con;
// 驱动程序名
String driver = "com.mysql.jdbc.Driver";
// url:指向要访问的数据库名
String url = "jdbc:mysql://localhost:3306/testsql3";
// mysql配置的用户名
String user = "root";
// 密码
String password = "huang";
public Main(int SNUM, int Mines) {// 主要界面构造函数
setTitle("扫雷");
// 初始雷数量
NUM = Mines;
JMenuBar greenBar = new JMenuB