亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jmine.java

?? 開源Java掃雷游戲JMine2.0Jar新版功能完善
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/**
 * This program is written by Jerry Shen(Shen Ji Feng) use the technology of
 * SWING GUI and the OO design
 * 
 * @author Jerry Shen all rights reserved.
 * Email:jerry.shen@cognizant.com; jerry_shen_sjf@yahoo.com.cn
 * Please report bug to these emails.
 * Open source under GPLv3
 * 
 * version 2.0
 */
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

import java.util.Timer;
import java.util.TimerTask;


@SuppressWarnings("serial")
public class JMine extends JFrame implements MouseListener, ActionListener {
	public static void main(String [] args) {
		JMine jmine = new JMine();
		jmine.setVisible(true);
	}
	
	private AboutFrame about;
	
	ImageIcon blankIcon = new ImageIcon(ResourceLocator.getImgResource("blank1.gif"));
	
	private JButton bTest;
	
	private GridBagConstraints constraints;
	
	private JPanel controlPane;
	
	private CustomerFrame customerFrame; 
	
	private final int DEFAULT_COL_COUNT = 10;

	private final int DEFAULT_ROW_COUNT = 10;
	
	private ImageIcon[] faceIcon = { new ImageIcon(ResourceLocator.getImgResource("smile.gif")),
			new ImageIcon(ResourceLocator.getImgResource("Ooo.gif")) };
	
	private final int GAME_EASY = 12;

	private final int GAME_HARD = 36;

	private final int GAME_MIDDLE = 24;

	private boolean gameStarted;

	private GridBagLayout gridbag;
	
	private int height;

	private long lastClick = 0L;

	private JMenuBar mb;
	
	private JMenu mGame;

	private JMenu mHelp;

	private JMenuItem miAbout;

	private JMenuItem miCustomer;

	private JMenuItem miEasy;

	private JMenuItem miExit;

	private JMenuItem miHard;

	private JMenuItem miMiddle;
	
	private JMineArth mine;

	private ImageIcon[] mineBombStatus = { new ImageIcon(ResourceLocator.getImgResource("0.gif")),
			new ImageIcon(ResourceLocator.getImgResource("mine.gif")), new ImageIcon(ResourceLocator.getImgResource("wrongmine.gif")),
			new ImageIcon(ResourceLocator.getImgResource("bomb.gif")) };

	private JMineButton[][] mineButton;

	private JCounter mineCounter;

	private ImageIcon[] mineNumIcon = { new ImageIcon(ResourceLocator.getImgResource("blank1.gif")),
			new ImageIcon(ResourceLocator.getImgResource("1.gif")), new ImageIcon(ResourceLocator.getImgResource("2.gif")),
			new ImageIcon(ResourceLocator.getImgResource("3.gif")), new ImageIcon(ResourceLocator.getImgResource("4.gif")),
			new ImageIcon(ResourceLocator.getImgResource("5.gif")), new ImageIcon(ResourceLocator.getImgResource("6.gif")),
			new ImageIcon(ResourceLocator.getImgResource("7.gif")), new ImageIcon(ResourceLocator.getImgResource("8.gif")),
			new ImageIcon(ResourceLocator.getImgResource("0.gif"))};

	private ImageIcon[] mineStatus = { new ImageIcon(ResourceLocator.getImgResource("blank1.gif")),
			new ImageIcon(ResourceLocator.getImgResource("flag.gif")), new ImageIcon(ResourceLocator.getImgResource("question.gif")) };

	private long nowClick = 0L;
	
	public int numFlaged;
	
	public int numMine;
	
	private JPanel pane;
	
	Insets space = new Insets(0, 0, 0, 0);
	
	private JCounter timeCounter;

	private Timer timer = new Timer();
	
	private int width;

	private WinFrame winFrame;

	private Timer winTimer = new Timer();

	// Constructor of the game
	public JMine() {
		super("JMine Game");
		setSize(250, 350);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		

		// Game vars
		gameStarted = false;
		numMine = GAME_EASY;
		numFlaged = 0;

		gridbag = new GridBagLayout();
		constraints = new GridBagConstraints();
		pane = new JPanel();
		pane.setLayout(gridbag);
		constraints.fill = GridBagConstraints.BOTH;
		constraints.anchor = GridBagConstraints.CENTER;

		// Begin Menu Set
		mb = new JMenuBar();
		mGame = new JMenu("Game");
		miEasy = new JMenuItem("Easy");
		miEasy.addActionListener(this);
		miMiddle = new JMenuItem("Middle");
		miMiddle.addActionListener(this);
		miHard = new JMenuItem("Hard");
		miHard.addActionListener(this);
		miCustomer = new JMenuItem("Customer");
		miCustomer.addActionListener(this);
		miExit = new JMenuItem("Exit");
		miExit.addActionListener(this);
		mGame.add(miEasy);
		mGame.add(miMiddle);
		mGame.add(miHard);
		mGame.addSeparator();
		mGame.add(miCustomer);
		mGame.addSeparator();
		mGame.add(miExit);
		mb.add(mGame);

		mHelp = new JMenu("Help");
		miAbout = new JMenuItem("About...");
		mHelp.add(miAbout);
		miAbout.addActionListener(this);
		mb.add(mHelp);
		this.setJMenuBar(mb);
		// end of Menu Set

		// Control Panel
		controlPane = new JPanel();
		bTest = new JButton(faceIcon[0]);
		bTest.setSize(26, 27);
		bTest.setMargin(space);
		bTest.addMouseListener(this);
		bTest.setPressedIcon(faceIcon[1]);

		mineCounter = new JCounter(numMine);
		timeCounter = new JCounter();
		controlPane.add(mineCounter);
		controlPane.add(bTest);
		controlPane.add(timeCounter);
		buildConstraints(constraints, 0, 0, 10, 2, 100, 100);
		gridbag.setConstraints(controlPane, constraints);
		pane.add(controlPane);

		width = DEFAULT_COL_COUNT;
		height = DEFAULT_ROW_COUNT;
		// Bottons
		mineButton = new JMineButton[width][height];
		for (int i = 0; i < height; i++) {
			for (int j = 0; j < width; j++) {
				mineButton[j][i] = new JMineButton(j, i, blankIcon);
				mineButton[j][i].addMouseListener(this);
				mineButton[j][i].setMargin(space);
				buildConstraints(constraints, j, i + 3, 1, 1, 80, 80);
				gridbag.setConstraints(mineButton[j][i], constraints);
				pane.add(mineButton[j][i]);
			}
		}

		// Content Pane
		setContentPane(pane);
		setLocation(200, 200);
		setVisible(true);

		// About Frame
		about = new AboutFrame("JMine About");

		// Customer Frame
		customerFrame = new CustomerFrame("Customer game");
		
		// Win Frame
		winFrame = new WinFrame("You win!", customerFrame);
	}

	public void actionPerformed(ActionEvent e) {
		try {
			if (e.getSource() == miEasy) {
				setNewGame(GAME_EASY,DEFAULT_COL_COUNT,DEFAULT_ROW_COUNT);
				width = DEFAULT_COL_COUNT;
				height = DEFAULT_ROW_COUNT;
				return;
			}
			if (e.getSource() == miMiddle) {
				setNewGame(GAME_MIDDLE,DEFAULT_COL_COUNT,DEFAULT_ROW_COUNT);
				width = DEFAULT_COL_COUNT;
				height = DEFAULT_ROW_COUNT;
				return;
			}
			if (e.getSource() == miHard) {
				setNewGame(GAME_HARD,DEFAULT_COL_COUNT,DEFAULT_ROW_COUNT);
				width = DEFAULT_COL_COUNT;
				height = DEFAULT_ROW_COUNT; 
				return;
			}			
			if (e.getSource() == miCustomer) {
				timer.cancel();
				customerFrame.setOk(false);
				customerFrame.setVisible(true);
		
				winTimer.schedule(new TimerTask(){
					public void run() {
						while(!customerFrame.isOk()){
						}
						setNewGame(customerFrame.getMineNum(),customerFrame.getColCount(),customerFrame.getRowCount());
						width = customerFrame.getColCount();
						height = customerFrame.getRowCount();
						this.cancel();
					}
				},0L);
				
				return;
			}
			if (e.getSource() == miExit) {
				System.exit(0);
			}
			if (e.getSource() == miAbout) {
				about.setVisible(true);
			}
		} catch (Exception ie) {
		}
	}

	// You lose
	private void bomb(int col, int row, int colCount, int rowCount){
		try{
		//System.out.println("Bomb!");

		for (int i = 0; i < rowCount; i++) {
			for (int j = 0; j < colCount; j++) {
				mineButton[j][i].setIcon(mineBombStatus[0]);
				int toShow;
				toShow = mine.mine[j][i] != 9 ? 0 : 1;
				mineButton[j][i].setClickFlag(true);
				if (toShow == 1 && (i != row || j != col)) {
					mineButton[j][i].setIcon(mineBombStatus[toShow]);
					mineButton[j][i].setClickFlag(true);
				} else if (toShow == 1 && (i == row && j == col)) {
					mineButton[j][i].setIcon(mineBombStatus[3]);
					mineButton[j][i].setClickFlag(true);
				} else if (toShow == 0 && mineButton[i][j].getFlag() != 1) {
					mineButton[j][i].setEnabled(false);
				} else if (toShow == 0 && mineButton[i][j].getFlag() == 1) {
					mineButton[j][i].setIcon(mineBombStatus[2]);
					mineButton[j][i].setClickFlag(true);
				}
			}
		}
		
		timer.cancel();
		
		
		}catch (Exception e){
			
		}
	}
	
	// Set the GUI objects positions
	private void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw,
			int gh, int wx, int wy) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美一区二区三区久本道91| 亚洲日本一区二区| 成人理论电影网| 一区二区三区四区五区视频在线观看| 欧美丝袜第三区| 激情图片小说一区| 日韩一级精品视频在线观看| 99r精品视频| 麻豆91在线播放| 亚洲蜜臀av乱码久久精品蜜桃| 欧美日韩精品一区二区在线播放| 亚洲.国产.中文慕字在线| 国产亚洲精品资源在线26u| 一本大道av伊人久久综合| 麻豆国产精品官网| 亚洲精品国产成人久久av盗摄 | 欧美色区777第一页| 精品夜夜嗨av一区二区三区| 亚洲欧美综合另类在线卡通| 日韩欧美一卡二卡| 色又黄又爽网站www久久| 国产a精品视频| 美日韩一区二区| 亚洲男人电影天堂| 亚洲国产电影在线观看| 欧美视频中文一区二区三区在线观看| 国产成人精品亚洲777人妖| 午夜婷婷国产麻豆精品| 国产精品无圣光一区二区| 日韩一区二区在线看片| 在线一区二区三区四区| av福利精品导航| 国产不卡免费视频| 精品一区二区免费| 日韩精品91亚洲二区在线观看| 国产精品狼人久久影院观看方式| 国产欧美视频一区二区三区| 欧美大片在线观看一区| 欧美日本一区二区三区四区| av午夜一区麻豆| www.在线成人| 97se亚洲国产综合自在线不卡| 国产米奇在线777精品观看| 日韩专区欧美专区| 亚洲高清不卡在线观看| 亚洲欧美另类久久久精品2019| 26uuu精品一区二区三区四区在线| 欧美日韩精品欧美日韩精品| 色婷婷av一区二区三区大白胸| 高清国产一区二区| 国产精品一区二区黑丝| 亚洲一区欧美一区| 日本在线观看不卡视频| 日本一不卡视频| 日韩精品一级中文字幕精品视频免费观看 | 激情文学综合丁香| 激情久久五月天| 国产做a爰片久久毛片| 黑人巨大精品欧美黑白配亚洲| 日本美女一区二区| 免费高清在线视频一区·| 免播放器亚洲一区| 国产一区二区三区香蕉| 国产成人免费在线观看不卡| 国产精品911| 成人黄色777网| 91玉足脚交白嫩脚丫在线播放| 成人h动漫精品| 欧洲一区二区av| 欧美日韩mp4| 欧美va亚洲va在线观看蝴蝶网| 欧美不卡一区二区三区四区| 欧美国产日本视频| 一区二区三区丝袜| 亚洲v日本v欧美v久久精品| 日韩制服丝袜先锋影音| 九色综合国产一区二区三区| 国产麻豆精品theporn| 91丨porny丨国产| 欧美一区二区三区电影| 亚洲欧洲一区二区在线播放| 亚洲电影激情视频网站| 国产aⅴ综合色| 欧美日韩精品免费观看视频| 久久久精品2019中文字幕之3| 亚洲欧美日韩国产成人精品影院| 美女视频一区二区| 91丨九色丨蝌蚪丨老版| 欧美变态凌虐bdsm| 亚洲狠狠丁香婷婷综合久久久| 久久精品999| 欧美三级在线视频| 国产精品久久久久影院老司| 免费成人在线网站| 在线精品亚洲一区二区不卡| 久久精品视频免费观看| 亚洲成a人v欧美综合天堂| 国产高清久久久久| 日韩午夜在线播放| 亚洲国产美国国产综合一区二区| 国产成人av电影免费在线观看| 欧美日韩激情一区| 国产精品国产三级国产aⅴ入口 | 黄网站免费久久| 欧美日韩一级二级三级| 国产精品美女久久久久高潮| 久久精品国产免费| 6080yy午夜一二三区久久| 亚洲男同性恋视频| 成人深夜福利app| 精品国产网站在线观看| 五月婷婷色综合| 日本高清视频一区二区| 日本一区二区不卡视频| 久久99精品国产麻豆婷婷洗澡| 欧美日韩一区二区在线观看| 亚洲欧洲99久久| 成人小视频免费观看| 久久嫩草精品久久久精品| 日本aⅴ精品一区二区三区| 欧美三级午夜理伦三级中视频| 亚洲欧美激情一区二区| 成人美女视频在线观看| 国产女主播一区| 国产乱码精品一区二区三区av| 欧美一区二区三区四区在线观看 | 国产精品影视在线观看| 26uuu国产日韩综合| 麻豆高清免费国产一区| 91精品久久久久久久久99蜜臂| 亚洲综合色噜噜狠狠| 欧美自拍偷拍一区| 一区二区三区久久久| 91成人在线精品| 亚洲一区二区av电影| 欧美日韩一区二区三区在线| 亚洲午夜久久久久久久久电影院 | 蜜臀av性久久久久av蜜臀妖精 | 中文字幕五月欧美| 99国产精品国产精品毛片| 自拍偷拍亚洲激情| 日本电影欧美片| 亚洲电影一级片| 日韩午夜av电影| 国产精品自产自拍| 中文字幕高清不卡| 91免费看视频| 亚洲综合图片区| 91精品在线免费| 久草这里只有精品视频| 久久久高清一区二区三区| 国产成人免费在线观看不卡| 国产精品久久影院| 色欧美片视频在线观看在线视频| 亚洲精品免费视频| 7777精品久久久大香线蕉| 久久疯狂做爰流白浆xx| 国产无遮挡一区二区三区毛片日本| 国产高清精品久久久久| 亚洲精品久久嫩草网站秘色| 欧美性极品少妇| 国产在线不卡一区| 国产精品久久二区二区| 欧美视频自拍偷拍| 国内成人免费视频| 亚洲视频中文字幕| 欧美一级片免费看| 成人免费毛片嘿嘿连载视频| 亚洲美女电影在线| 欧美大片一区二区| av网站免费线看精品| 日韩精品每日更新| 亚洲国产成人一区二区三区| 色欧美88888久久久久久影院| 视频一区二区三区中文字幕| 久久综合给合久久狠狠狠97色69| av电影在线观看一区| 日韩专区中文字幕一区二区| 国产日韩欧美不卡在线| 欧美性感一区二区三区| 国产一区二区在线免费观看| 一色屋精品亚洲香蕉网站| 日韩午夜电影在线观看| 99久久精品国产麻豆演员表| 日韩精品成人一区二区三区| 国产精品女上位| 91精品国产91久久久久久一区二区| 国产99久久久国产精品免费看| 亚洲国产精品久久久久婷婷884 | 麻豆国产精品777777在线| 最新中文字幕一区二区三区| 欧美男人的天堂一二区| 成人中文字幕合集| 免费一级片91| 一区二区在线观看av| 久久久久一区二区三区四区| 欧美熟乱第一页| 91视频国产资源| 高清shemale亚洲人妖| 美女爽到高潮91|