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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? myframe.java

?? 掃雷游戲
?? JAVA
字號(hào):
package cleanMine;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.UIManager.LookAndFeelInfo;

public class MyFrame implements ActionListener
{
    JFrame jf;
	JMenuBar jmb;
	JLabel jl_1,jl_2,jl_3,jl_4;
	JButton restart;
	MineButton[][] mines;
	JPanel jp_center;
	int level=10;
	boolean isGoing=true;
	int countClick=level;
	timeThread tt;
	public MyFrame()
	{
		jf=new JFrame("掃雷 --JAVA版--");
		initMenuBar();
		jf.setLayout(new BorderLayout());
		initNorth();
		initMines();
		tt=new timeThread(jl_4);
		tt.start();
		showMe();
	}
	private void initMines()
	{
		isGoing=true;
		if(jp_center!=null)
		{
			jf.remove(jp_center);
		}
		mines=new MineButton[level][level];
		jp_center=new JPanel();
		jp_center.setLayout(new GridLayout(level,level));//將面板布局為設(shè)置為十行十列的網(wǎng)格.setLayout(new GridLayout(level,level));//將面板布局為設(shè)置為十行十列的網(wǎng)格
		jf.add(jp_center,BorderLayout.CENTER);
	    for(int i=0;i<mines.length;i++)
	    {
	    	for(int j=0;j<mines[i].length;j++)
	    	{
	    		mines[i][j]=new MineButton(i,j);
	    		jp_center.add(mines[i][j]);
	    		mines[i][j].addActionListener(this);
	    		mines[i][j].addMouseListener(new MouseAdapter(){
	    			public void mousePressed(MouseEvent arg0)
	    			{
	    				if(arg0.getButton()==3)
	    				{
	    					MineButton m=(MineButton)arg0.getSource();
	    					if(countClick>0)
	    					{
	    						if(!m.isChangD()&&!m.isFlagd())
		    					{
		    						m.setFlagd(true);
		    						m.setText("?");
		    						countClick--;
		    						jl_2.setText(""+countClick);
		    					}
		    					else if(!m.isChangD()&&m.isFlagd())
		    					{
		    						m.setFlagd(true);
		    						m.setText("");
		    						countClick++;
		    						jl_2.setText(""+countClick);
		    					}
	    						if(countClick==0)
	    						{
	    							boolean success=true;
	    							for(int i=0;i<level;i++)
	    								for(int j=0;j<level;j++)
	    								{
	    									if(mines[i][j].getText().equals("?")&&mines[i][j].getIsMines()!=-1)
	    									{
	    										success=false;
	    										break;
	    									}
	    								}
	    							if(success)
	    							{
	    								restart.setText("您成功了!");
	    								tt.stopTime();
	    							}
	    							else
	    							{
	    								restart.setText("您輸了!");
	    								tt.stopTime();
	    							}
	    						}
	    					}
	    					
	    				}
	    			}
	    			
	    		});
	    	}
	    }
	    //布雷
	    int count=0;
	    while(count<level)
	    {
	    	int x=(int)(Math.random()*level);
	    	int y=(int)(Math.random()*level);
	    	if(mines[x][y].getIsMines()!=-1)
	    	{
	    		mines[x][y].setIsMines(-1);
	    		count++;
	    	}
	    }
	    //判斷周圍的雷數(shù)
	    for(int i=0;i<mines.length;i++)
		{
			for(int j=0;j<mines[i].length;j++)
			{
				if(mines[i][j].getIsMines()!=-1)
				{
					int countMines=0;
					if(i-1>-1&&j-1>-1&&mines[i-1][j-1].getIsMines()==-1)
						countMines++;
					if(i-1>-1&&j>-1&&mines[i-1][j].getIsMines()==-1)
						countMines++;
					if(i-1>-1&&j+1<mines[i-1].length&&mines[i-1][j+1].getIsMines()==-1)
						countMines++;
					if(j-1>-1&&mines[i][j-1].getIsMines()==-1)
						countMines++;
					if(j+1<mines[i].length&&mines[i][j+1].getIsMines()==-1)
						countMines++;
					if(i+1<mines.length&&j-1>-1&&mines[i+1][j-1].getIsMines()==-1)
						countMines++;
					if(i+1<mines.length&&mines[i+1][j].getIsMines()==-1)
						countMines++;
					if(i+1<mines.length&&j+1<mines[i+1].length&&mines[i+1][j+1].getIsMines()==-1)
						countMines++;
					mines[i][j].setIsMines(countMines);
				}				
			}			
		}
	    
	    //jf.add(jp,BorderLayout.CENTER);
	}
	private void initNorth()
	{
		jl_1=new JLabel("剩余雷數(shù):");
		jl_2=new JLabel(level+"");
		jl_3=new JLabel("所用時(shí)間:");
		jl_4=new JLabel("0");
	    restart=new JButton("重新開始");
	    restart.addActionListener(this);
	    JPanel jp=new JPanel();    
	    jp.add(jl_1);
	    jp.add(jl_2);
	    jp.add(restart);
	    jp.add(jl_3);
	    jp.add(jl_4);
	    jf.add(jp,BorderLayout.NORTH);	    
	}
	private void initMenuBar()//初始化菜單欄
	{
		jmb=new JMenuBar();//創(chuàng)建菜單欄
		JMenu jm_1=new JMenu("游戲");//創(chuàng)建菜單項(xiàng)
		JMenuItem jm_1_1=new JMenuItem("開局");
		jm_1_1.addActionListener(this);
	    ButtonGroup bg_1=new ButtonGroup();//用于捆綁初高級(jí)菜單,使其只能二選一
		JCheckBoxMenuItem jm_1_2=new JCheckBoxMenuItem("初級(jí)",true);//單選菜單
		jm_1_2.addActionListener(this);
		bg_1.add(jm_1_2);
		JCheckBoxMenuItem jm_1_3=new JCheckBoxMenuItem("高級(jí)");//單選菜單
		jm_1_3.addActionListener(this);
		bg_1.add(jm_1_3);
		JMenuItem jm_1_4=new JMenuItem("退出");
		jm_1_4.addActionListener(this);
		jm_1.add(jm_1_1);
		jm_1.addSeparator();//添加橫線
		jm_1.add(jm_1_2);
		jm_1.add(jm_1_3);
		jm_1.addSeparator();//添加橫線
		jm_1.add(jm_1_4);
		
		JMenu jm_2=new JMenu("界面");//創(chuàng)建菜單項(xiàng)
		ButtonGroup bg_2=new ButtonGroup();
		JCheckBoxMenuItem jm_2_1=new JCheckBoxMenuItem("XP樣式",true);
		jm_2_1.addActionListener(this);
		bg_2.add(jm_2_1);
		JCheckBoxMenuItem jm_2_2=new JCheckBoxMenuItem("經(jīng)典樣式",true);
		jm_2_2.addActionListener(this);
		bg_2.add(jm_2_2);
		jm_2.add(jm_2_1);
		jm_2.add(jm_2_2);
		
		jmb.add(jm_1);//加載菜單
		jmb.add(jm_2);//加載菜單
		
		jf.setJMenuBar(jmb);//加載菜單欄	
	}
	private void showMe()
	{
		tt.reset();
		jf.setLocation(300,100);
		jf.setSize(30*level,30*level+60);
		jf.setVisible(true);
		jf.setResizable(false);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉按鈕生效
	}
	public static void main(String[] args) 
	{
		new MyFrame();
	}
	public void actionPerformed(ActionEvent e)
	{
		String comm=e.getActionCommand();
		if("開局".equals(comm))
		{
			jl_2.setText(level+"");
			jl_4.setText("0");
			initMines();
			countClick=level;
			restart.setText("重新開始");
			showMe();
			//isGoing=true;
		}
		else if("初級(jí)".equals(comm))
		{
			level=10;
			jl_2.setText(level+"");
			jl_4.setText("0");
			initMines();
			countClick=level;
			restart.setText("重新開始");
			showMe();
			//isGoing=true;
		}
		else if("高級(jí)".equals(comm))
		{
			level=20;
			jl_2.setText(level+"");
			jl_4.setText("0");
			initMines();
			countClick=level;
			restart.setText("重新開始");
			showMe();
			//isGoing=true;
		}
		else if("退出".equals(comm))
		{
			System.exit(1);
		}
		else if("XP樣式".equals(comm))
		{
			LookAndFeelInfo[] infos=UIManager.getInstalledLookAndFeels();
			String[] names=new String[infos.length];
			for(int i=0;i<infos.length;i++)
			{
				names[i]=infos[i].getClassName();
			}
			try 
			{
				UIManager.setLookAndFeel(names[0]);
			} 
			catch (Exception e1) 
			{
				e1.printStackTrace();
			} 
			SwingUtilities.updateComponentTreeUI(jf);	
		}
		else if("經(jīng)典樣式".equals(comm))
		{
			LookAndFeelInfo[] infos=UIManager.getInstalledLookAndFeels();
			String[] names=new String[infos.length];
			for(int i=0;i<infos.length;i++)
			{
				names[i]=infos[i].getClassName();
			}
			try 
			{
				UIManager.setLookAndFeel(names[3]);
			} 
			catch (Exception e1) 
			{
				e1.printStackTrace();
			} 
			SwingUtilities.updateComponentTreeUI(jf);
		}
		else if("重新開始".equals(comm)||"您成功了!".equals(comm)||"您輸了!".equals(comm))
		{
			jl_2.setText(level+"");
			jl_4.setText("0");
			initMines();
			countClick=level;
			restart.setText("重新開始");
			showMe();
			//isGoing=true;
		}
		else 
		{			
			if(isGoing)
			{			
				MineButton mine=(MineButton)e.getSource();
				if(mine.getText()!="?")
				{
					if(mine.getIsMines()==-1)
					{
						isGoing=false;
						for(int i=0;i<mines.length;i++)
							for(int j=0;j<mines[i].length;j++)
							{
								//mines[i][j].setEnabled(false);
								if(mines[i][j].getIsMines()==-1)
								{
									mines[i][j].setText("*");
									mines[i][j].setFont(new Font("comic Sans MS",27,27));
									restart.setText("您輸了!");
									tt.stopTime();
								}
						
							}
					}
					else
					{
						showEmpty(mine.getRow(),mine.getCol());
					}
				}
				
			}
		}
		
		
	}
	private void showEmpty(int row,int col) 
	{
		MineButton m=mines[row][col];
		if(!m.isChangD())
		{
			if(m.getIsMines()==0)
			{
				//m.setText(""+m.getIsMines());
				m.setBackground(Color.WHITE);
				m.setChangD(true);
				if(row-1>-1&&col-1>-1)
					showEmpty(row-1,col-1);
				if(row-1>-1)
					showEmpty(row-1,col);
				if(row-1>-1&&col+1<level)
					showEmpty(row-1,col+1);
				if(col-1>-1)
					showEmpty(row,col-1);
				if(col+1<level)
					showEmpty(row,col+1);
				if(row+1<level&&col-1>-1)
					showEmpty(row+1,col-1);
				if(row+1<level)
					showEmpty(row+1,col);
				if(row+1<level&&col+1<level)
					showEmpty(row+1,col+1);
			}
			else if(m.getIsMines()==1)
			{
				m.setForeground(Color.BLUE);
				m.setText(""+m.getIsMines());
				m.setChangD(true);
			}
			else if(m.getIsMines()==2)
			{
				m.setForeground(Color.GREEN);
				m.setText(""+m.getIsMines());
				m.setChangD(true);
			}
			else
			{
				m.setForeground(Color.RED);
				m.setText(""+m.getIsMines());
				m.setChangD(true);
			}
			//m.setChangD(true);
		}	
	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级片网站| 成人美女视频在线观看18| www久久久久| 色偷偷久久一区二区三区| 日韩av二区在线播放| 国产精品人人做人人爽人人添| 欧美三片在线视频观看| 国产成人免费视频精品含羞草妖精| 亚洲综合视频在线| 国产精品私人影院| 91精品国产欧美日韩| 99re成人精品视频| 国产成人亚洲综合a∨婷婷 | 99九九99九九九视频精品| 视频一区国产视频| 亚洲狼人国产精品| 国产精品精品国产色婷婷| 欧美大胆一级视频| 欧美群妇大交群中文字幕| 不卡的av中国片| 国产精品亚洲视频| 青青草一区二区三区| 亚洲五码中文字幕| 日韩美女视频一区二区| 国产欧美va欧美不卡在线| 欧美电视剧在线观看完整版| 欧美日韩电影在线播放| 色av成人天堂桃色av| 99re这里只有精品6| 成人激情校园春色| 国产成人精品免费视频网站| 激情成人综合网| 奇米综合一区二区三区精品视频| 亚洲一区二区三区国产| 亚洲视频资源在线| 亚洲日本丝袜连裤袜办公室| 中文一区在线播放| 久久蜜臀中文字幕| 亚洲精品在线免费播放| 欧美电影免费观看高清完整版在线观看| 欧美喷潮久久久xxxxx| 色综合欧美在线视频区| 91网址在线看| 日本高清成人免费播放| 91久久香蕉国产日韩欧美9色| av一区二区三区四区| 99riav一区二区三区| 99久久婷婷国产综合精品电影| 国产99久久久国产精品| 丁香一区二区三区| 99久久国产综合精品女不卡| 99在线精品视频| 色噜噜夜夜夜综合网| 色狠狠一区二区三区香蕉| 在线视频欧美精品| 欧美三区在线观看| 日韩一区二区三区四区| 久久这里只有精品首页| 中文字幕国产一区二区| 自拍av一区二区三区| 性做久久久久久久免费看| 丝袜美腿高跟呻吟高潮一区| 日本sm残虐另类| 久久99国产精品久久| 国产成人精品aa毛片| 91女人视频在线观看| 欧美在线不卡一区| 精品精品国产高清a毛片牛牛 | 日韩精品一区在线观看| 久久久久国产精品人| 亚洲欧美日韩在线不卡| 一区二区国产盗摄色噜噜| 亚洲国产岛国毛片在线| 国产精品福利电影一区二区三区四区| 亚洲欧美日韩在线| 亚洲成人第一页| 久久国产麻豆精品| 国产精品 欧美精品| 丁香一区二区三区| 欧美在线一二三| 日韩午夜激情免费电影| 国产亚洲精品免费| 亚洲色图在线看| 午夜精品影院在线观看| 麻豆久久久久久久| 国产高清在线观看免费不卡| 久久精品国产久精国产爱| 99在线视频精品| 欧美一区二区久久| 久久青草欧美一区二区三区| 亚洲视频一区二区免费在线观看| 亚洲精选视频在线| 日本特黄久久久高潮| 国产69精品久久久久毛片| aaa亚洲精品| 2020国产精品自拍| 亚洲精品成人a在线观看| 日本午夜一本久久久综合| 国产精品996| 色美美综合视频| www久久精品| 亚洲乱码一区二区三区在线观看| 调教+趴+乳夹+国产+精品| 三级精品在线观看| 成人精品国产一区二区4080| www.色综合.com| 欧美一区二区三区思思人| 国产精品久久三区| 日本欧美肥老太交大片| 99天天综合性| 精品少妇一区二区三区| 中文字幕综合网| 日韩av中文字幕一区二区| av激情综合网| 久久久综合网站| 午夜视频在线观看一区| 成人av在线网| 国产日韩精品一区二区浪潮av| 性做久久久久久| 成人免费观看男女羞羞视频| 欧美一区二区日韩| 一区二区激情小说| av不卡在线播放| 久久九九99视频| 麻豆专区一区二区三区四区五区| 一本大道av一区二区在线播放 | 日韩一区二区不卡| 亚洲伦理在线精品| 成人免费毛片嘿嘿连载视频| 日韩视频在线观看一区二区| 亚洲综合久久久| 99久久婷婷国产综合精品 | 91精品久久久久久久久99蜜臂 | 奇米四色…亚洲| 欧美区视频在线观看| 一区二区三区中文免费| 成人性生交大片免费看视频在线 | 色香色香欲天天天影视综合网| 欧美videofree性高清杂交| 亚洲午夜电影在线观看| 91久久精品一区二区| 中文字幕欧美三区| 激情深爱一区二区| 国产无一区二区| 国产成人在线视频播放| 久久久91精品国产一区二区三区| 偷偷要91色婷婷| 欧美性色综合网| 亚洲综合一区二区三区| 在线观看欧美黄色| 最新成人av在线| 99久久精品免费观看| 成人欧美一区二区三区小说| 91丨porny丨在线| 国产精品久久久久一区二区三区共| 国产不卡视频在线播放| 久久精品夜色噜噜亚洲aⅴ| 国产高清精品网站| 国产精品免费视频一区| 色香色香欲天天天影视综合网| 亚洲精品一二三区| 欧美偷拍一区二区| 日韩二区在线观看| 日韩欧美一级二级三级久久久| 亚洲国产综合人成综合网站| 91精品国产综合久久婷婷香蕉| 日韩福利视频网| 欧美videofree性高清杂交| 国产一区二区三区不卡在线观看 | 亚洲不卡在线观看| 在线观看免费视频综合| 美女爽到高潮91| 久久夜色精品国产欧美乱极品| 国产一区二区不卡老阿姨| 欧美韩国日本不卡| 91久久精品日日躁夜夜躁欧美| 国产精品乱码一区二三区小蝌蚪| 欧亚洲嫩模精品一区三区| 亚洲午夜在线电影| 精品久久久久久久久久久久久久久久久| 国产一区二区三区在线观看免费视频| 国产亚洲精久久久久久| 99国产精品国产精品久久| 亚洲综合一二区| 亚洲精品在线电影| 成人av电影在线观看| 亚洲国产另类av| 国产午夜精品久久| 国产精品乡下勾搭老头1| 亚洲大片精品永久免费| 337p粉嫩大胆噜噜噜噜噜91av | 国产做a爰片久久毛片| 中文字幕欧美三区| 在线一区二区观看| 国产一区二区免费视频| 亚洲综合视频网| 国产亚洲欧洲一区高清在线观看| 在线观看视频91| 岛国一区二区三区| 天天av天天翘天天综合网|