⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menuaction.java

📁 扫雷完整的程序
💻 JAVA
字号:
/*
 * Created on May 1, 2005
 *
 * TODO To manage menu action
 */
package control;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JCheckBoxMenuItem;

import view.AboutDialog;
import view.CustomDialog;
import view.RecordDialog;
import view.UI;

import model.Model;
import model.SaveAndLoad;

/**
 * @author mqqqvpppm
 * 
 * TODO To manage menu action
 */
public class MenuAction implements ActionListener {

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == ui.getMenuItem("start")) {
			model.restart(model.getWidth(), model.getHeight(), model
					.getMineNumber(), model.getType());
		} else if (e.getSource() == ui.getMenuItem("easy")) {
			model.restart(9, 9, 10, Model.TYPE_EASY);
		} else if (e.getSource() == ui.getMenuItem("hard")) {
			model.restart(16, 16, 40, Model.TYPE_HARD);
		} else if (e.getSource() == ui.getMenuItem("hell")) {
			model.restart(30, 16, 99, Model.TYPE_HELL);
		} else if (e.getSource() == ui.getMenuItem("custom")) {
			if (customDialog == null) {
				customDialog = new CustomDialog(ui.getMainFrame(), model
						.getWidth(), model.getHeight(), model.getMineNumber());
			} else {
				customDialog.setWidth(model.getWidth());
				customDialog.setHeight(model.getHeight());
				customDialog.setMineNumber(model.getMineNumber());
			}
			if (customDialog.show()) {
				model.restart(customDialog.getWidth(),
						customDialog.getHeight(), customDialog.getMineNumber(),
						Model.TYPE_CUSTOM);
			} else {
				int type = model.getType();
				switch (type) {
				case Model.TYPE_EASY:
					((JCheckBoxMenuItem) ui.getMenuItem("easy"))
							.setSelected(true);
					break;
				case Model.TYPE_HARD:
					((JCheckBoxMenuItem) ui.getMenuItem("hard"))
							.setSelected(true);
					break;
				case Model.TYPE_HELL:
					((JCheckBoxMenuItem) ui.getMenuItem("hell"))
							.setSelected(true);
					break;
				}
			}
		} else if (e.getSource() == ui.getMenuItem("exit")) {
			try {
				saveAndLoad.saveType();
				saveAndLoad.saveRecord(ui.getUserNames(), ui.getScore());
				saveAndLoad.closeStream();
			} catch (IOException e1) {
			}
			System.exit(0);
		} else if (e.getSource() == ui.getMenuItem("about")) {
			if (aboutDialog == null) {
				aboutDialog = new AboutDialog(ui.getMainFrame());
			}
			aboutDialog.show();
		} else if (e.getSource() == ui.getMenuItem("save")) {
			try {
				saveAndLoad.save();
			} catch (IOException e1) {

			}
		} else if (e.getSource() == ui.getMenuItem("load")) {
			try {
				saveAndLoad.load();
			} catch (IOException e1) {

			}
		} else if (e.getSource() == ui.getMenuItem("record")) {
			if (recordDialog == null) {
				recordDialog = new RecordDialog(ui.getMainFrame());
			}
			if (recordDialog.show(ui.getUserNames(), ui.getScore())) {
				ui.clearRecord();
			}
		} else if (e.getSource() == ui.getMenuItem("mark")) {
			model.setMenuMarkSelected(((JCheckBoxMenuItem) e.getSource())
					.isSelected());
		}
	}

	public MenuAction(Model model, UI ui) {
		this.model = model;
		this.ui = ui;
		//		saveModel = new SaveModel(model);
		//		loadModel = new LoadModel(model);
		try {
			saveAndLoad = new SaveAndLoad(model);
		} catch (IOException e) {

		}
	}

	private Model model;

	private UI ui;

	private AboutDialog aboutDialog;

	private RecordDialog recordDialog;

	//	private SaveModel saveModel;

	//	private LoadModel loadModel;

	private SaveAndLoad saveAndLoad;

	//private HashMap menuItemMap;
	private CustomDialog customDialog;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -