最代码广告位
首页>分享>java Swing编写扫雷游戏>/cleanMine/src/cleanMine/CleanMine.java
package cleanMine;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * 扫雷游戏主界面
 * @author tony.tang
 *
 */
public class CleanMine extends JFrame implements ActionListener{
	private JLabel text1,text2;
	public static JLabel remainMine;//剩余地雷数
	private JLabel time;//消耗时间
	private JButton reset;//重新开始
	private JPanel center;
	private int row,col,mine;
	
	
	public CleanMine(){
		text1=new JLabel("剩余地雷:");
		text2=new JLabel("消耗时间:");
		remainMine=new JLabel("10");
		time=new JLabel("0");
		reset=new JButton("重新开始");
		reset.addActionListener(this);
		JMenuBar bar=new JMenuBar();
		JMenu game=new JMenu("游戏");
		JMenu help=new JMenu("帮助");
		JMenuItem item;
		game.add(item=new JMenuItem("开局"));item.addActionListener(this);
		game.addSeparator();
		ButtonGroup bg=new ButtonGroup();
		game.add(item=new JCheckBoxMenuItem("初级",true));bg.add(item);item.addActionListener(this);
		game.add(item=new JCheckBoxMenuItem("中级"));bg.add(item);item.addActionListener(this);
		game.add(item=new JCheckBoxMenuItem("高级"));bg.add(item);item.addActionListener(this);
		game.add(item=new JCheckBoxMenuItem("自定义..."));bg.add(item);item.addActionListener(this);
		game.addSeparator();
		game.add(item=new JMenuItem("退出"));item.addActionListener(this);
	
		help.add(item=new JMenuItem("查看帮助"));item.addActionListener(this);
		help.add(item=new JMenuItem("关于扫雷..."));item.addActionListener(this);
		
		bar.add(game);
		bar.add(help);
		
		this.setJMenuBar(bar);
		
		init();
	}
	
	private void init(){
		JPanel north=new JPanel();
		north.add(text1);
		north.add(remainMine);
		north.add(reset);
		north.add(text2);
		north.add(time);
		
		this.add(north,BorderLayout.NORTH);
		this.row=9;
		this.col=9;
		this.mine=10;
		restart();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		new Thread(){
			public void run(){
				while(Integer.parseInt(remainMine.getText())>0){
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					time.setText((Integer.parseInt(time.getText())+1)+"");
				}
			}
		}.start();
	}
	
	
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("初级")){
			this.row=9;
			this.col=9;
			this.mine=10;
			restart();
			return;
		}
		if(e.getActionCommand().equals("中级")){
			this.row=16;
			this.col=16;
			this.mine=40;
			restart();
			return;
		}
		if(e.getActionCommand().equals("高级")){
			this.row=16;
			this.col=30;
			this.mine=99;
			restart();
			return;
		}
		if(e.getActionCommand().equals("重新开始")){
			restart();
			return;
		}
	}

	private void restart(){
		if(center!=null){
			this.remove(center);
		}
		center=new AllButtonPanel(row,col,mine);
		this.add(center,BorderLayout.CENTER);
		this.remainMine.setText(mine+"");
		this.time.setText("0");
		this.setSize(col*30,row*30+10);
		this.setResizable(false);
		this.setVisible(true);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new CleanMine();

	}

}
最近下载更多
wangmeicong LV121月7日
月亮月亮月亮
zb1095876169 LV22019年12月24日
星星星星
1390060649 LV12019年12月18日
星星
zmy001 LV102019年12月16日
月亮月亮星星星星
gentleman1576 LV22019年12月9日
星星星星
haihuawoaini LV22019年12月6日
星星星星
freeflying LV12019年11月27日
星星
WUJIEYANGYULING LV42019年11月24日
月亮
戎马书生 LV142019年9月17日
月亮月亮月亮星星星星
a123b456 LV12019年9月8日
星星
最近浏览更多
z144741 LV15月30日
星星
1776428430 LV15月28日
星星
2869580060 LV75月17日
月亮星星星星星星
陈宗远3月28日
暂无贡献等级
fresky LV13月14日
星星
ge7758 LV12月27日
星星
hiking LV12月26日
星星
陌小宋 LV22月13日
星星星星
2442292384 LV12月9日
星星
zipper LV81月9日
月亮月亮
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友