当前位置:首页 > Java 扫雷游戏 课程设计
import java.awt.event.KeyEvent;
public class MineGame extends JFrame implements ActionListener {
JMenuBar bar;
JMenu fileMenu,fileMenu1;//////////////////////// JMenuItem 初级,中级,高级,扫雷英雄榜;
JMenuItem 自定义,背景声音,游戏规则,制作人,退出;//////////////////////// static MineArea mineArea=null;
File 英雄榜=new File(\英雄榜.txt\ Hashtable hashtable=null;
ShowRecord showHeroRecord=null;
userDefine userdefine=new userDefine();/////////////// voiceShow voiceshow;//////////////// ruleShow ruleshow;//////////////// authorShow authorshow;////////////////
MineGame()
{
mineArea=new MineArea(16,16,40,1); add(mineArea,BorderLayout.CENTER); bar=new JMenuBar();
fileMenu=new JMenu(\游戏\
fileMenu.setMnemonic(KeyEvent.VK_G);
fileMenu1=new JMenu(\帮助\
fileMenu1.setMnemonic(KeyEvent.VK_H);///////////////////// 初级=new JMenuItem(\初级\ 初
级.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,ActionEvent.CTRL_MASK));///////////// 中级=new JMenuItem(\中级\ 中
级.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));////////// 高级=new JMenuItem(\高级(H)\ 高
级.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,ActionEvent.CTRL_MASK));///////// 扫雷英雄榜=new JMenuItem(\扫雷英雄榜\ //////////////
扫雷英
榜.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,ActionEvent.CTRL_MASK));///////// 自定义=new JMenuItem(\自定义\ 自
义.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));////////// 背景声音=new JMenuItem(\背景声音\ 背景
音.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));////////
21
雄
定
声
游戏规则=new JMenuItem(\游戏规则\ 游
戏
规
则.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));//////// 制作人=new JMenuItem(\制作人\ 制
人.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));////////// 退出=new JMenuItem(\退出\ 退
出.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK));////////// voiceshow=new voiceShow();///////////// ruleshow=new ruleShow();////////////// authorshow=new authorShow();/////////////// fileMenu.add(初级); fileMenu.add(中级); fileMenu.add(高级);
fileMenu.add(自定义);/////////////////// fileMenu.add(扫雷英雄榜);
fileMenu.add(背景声音);//////////////////;////// fileMenu.add(退出);
fileMenu1.add(游戏规则);////////////////////// fileMenu1.add(制作人);//////////////////////// bar.add(fileMenu);
bar.add(fileMenu1);///////////////////////////// setJMenuBar(bar);
初级.addActionListener(this); 中级.addActionListener(this); 高级.addActionListener(this);
扫雷英雄榜.addActionListener(this);
自定义.addActionListener(this);/////////////// 背景声音.addActionListener(this);//////////////// 游戏规则.addActionListener(this);//////////////
作
制作人.addActionListener(this);///////////////// 退出.addActionListener(this);
hashtable=new Hashtable();
hashtable.put(\初级\初级#\匿名\ hashtable.put(\中级\中级#\匿名\ hashtable.put(\高级\高级#\匿名\ if(!英雄榜.exists()) {
try
{ FileOutputStream out=new FileOutputStream(英雄榜);
ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(hashtable); objectOut.close(); out.close();
22
}
catch(IOException e){}
}
showHeroRecord=new ShowRecord(this,hashtable); setBounds(100,100,280,380); setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); validate(); }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==初级){
mineArea.initMineArea(8,8,10,1); setBounds(100,100,360,340); }
if(e.getSource()==中级){
mineArea.initMineArea(16,16,40,2); setBounds(100,100,320,420); }
if(e.getSource()==高级){
mineArea.initMineArea(22,22,99,3); setBounds(100,100,390,450); }
if(e.getSource()==自定义)//////////////// {
userdefine.setvisible(true);////////////// }
if(e.getSource()==背景声音)///////////// {
voiceshow.setVisible(true);//////////// }
if(e.getSource()==游戏规则)/////////////// {
ruleshow.setVisible(true);//////////// }
if(e.getSource()==制作人)////////////////// {
authorshow.setVisible(true);//////////////// }
if(e.getSource()==扫雷英雄榜){ if(showHeroRecord!=null) showHeroRecord.setVisible(true); }
if(e.getSource()==退出){ System.exit(0);
23
} }
public static void main(String args[]) {
new MineGame(); } } 附录2:
import java.awt.*;
import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.*; import java.applet.*;
public class MineArea extends JPanel implements ActionListener,MouseListener{ JButton reStart; Block [][] block;
BlockView [][] blockView; URL url;////////////// String str;/////////// AudioClip clip;
LayMines lay;
int row,colum,mineCount,markMount;//雷区的行数、列数以及地雷个数和用户给出的标记数 ImageIcon mark;
int grade;
JPanel pCenter,pNorth;
JTextField showTime,showMarkedMineCount; //显示用时以及标记数 Timer time; //计时器 int spendTime=0; Record record;
public MineArea(int row,int colum,int mineCount,int grade) { reStart=new JButton(\重新开始\
//reStart.setSize(4,4);
mark=new ImageIcon(\ //探雷标记 time=new Timer(1000,this); showTime=new JTextField(4); str=\爆炸声.wav\
showMarkedMineCount=new JTextField(4);
showTime.setHorizontalAlignment(JTextField.CENTER); showTime.setForeground(new Color(255,0,0));//////////////
showMarkedMineCount.setHorizontalAlignment(JTextField.CENTER); showMarkedMineCount.setForeground(new Color(255,0,0));//////////// showMarkedMineCount.setFont(new Font(\ showTime.setFont(new Font(\ pCenter=new JPanel();
24
共分享92篇相关文档