日期:2014-05-20  浏览次数:20772 次

感谢大家的支持~~菜鸟的扫雷修改了一下,再发一次,期待大家的意见
首先感谢大家对这个帖子的支持~~让菜鸟有了前进的信心
http://topic.csdn.net/u/20100811/10/233f5259-19c7-422e-9488-bd58e68c4a92.html?1993950910
这个结了。

我这几天又把程序修改了一些:
加入了“求救”按钮,在无法继续通过计算扫雷时,可以点出此获知随机的一个未标记雷的位置;
加入了计时器;
加入了作弊功能……嘿嘿,按下键盘上的某键,可以知道所有雷的位置,吼吼


为方便编译,把所有代码都放到一个文件里了~~~

期待大家的意见!

http://download.csdn.net/source/2619057
修改后的文件下载地址

再贴一下:一个楼层贴不下,分成了两部分,实则是一个源文件
Main.java
Java code

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main
{
        public static void main(String[] argus)
        {
                                Landmine Zhang = new Landmine();
        }
}

//
//      Landmine类  主界面
class Landmine    extends    JFrame
{
                static Resources resources = new Resources();
                Playing     listener    =    new    Playing(this);                    //主要监听者,监听地雷面板的动作
                Help helpListener    =    new    Help(this);                            //辅助监听者,监听“帮助”、“关于”
                JPanel landminePanel = new JPanel();                        //创建地雷面板
                JPanel topPanel    =    new    JPanel();                                    //创建顶部面板
                JPanel lowerPanel    =    new    JPanel();                                //创建底部面板
                public static    MyButton [][]    lei;                                //主区按钮组
                public static    int    numberOfUnflaged ;                //剩余的雷数,显示在topPanel上,用于提示用户
                public static    int    numberOfClicked;                    //已经翻开的格子数,当数字数字到"总格子数—雷数"时,即胜利                
                public static    int    usedTime;                 //已用时间
                public static    JLabel numberOfUnflagedLabel = new JLabel(); //创建剩雷数标签
                public static JLabel timeLabel = new JLabel();//创建时间标签
                public static    Timer    timer;                       //创建计时
                Keylistener keyListener = new Keylistener(this);                

                public Landmine()
                {
                                super("扫雷__1.2版__小老头");                                        //标题
                                setBounds(300,90,800,800);                            //设置窗口位置和大小
                                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//最大化、最小化、关闭按钮
                                BorderLayout ff    =    new    BorderLayout();        //创建布局管理器
                                setLayout(ff);                                                    //关联布局管理器
                                setResizable(false);                    //禁止改变窗口大小
                                
                                /*初始化一些数据*/
                                numberOfClicked    = 0;
                                numberOfUnflaged = 40;
                                usedTime = 0;                                

                                /*设置顶部面板*/
                                numberOfUnflagedLabel.setText("剩余雷数:"+numberOfUnflaged);//显示剩余雷数
                                numberOfUnflagedLabel.setFont(resources.fontOne);//设置剩雷数标签字体
                                numberOfUnflagedLabel.setIcon(resources.bombIconForLabel);//剩雷数标签图标(地雷形)
                                topPanel.add(numberOfUnflagedLabel);        //剩雷数标签加入topPanel
                                timeLabel.setText("用时:" + usedTime); //显示剩余时间
                                timeLabel.setFont(resources.fontOne);        //设置时间标签字体
                                timeLabel.setIcon(resources.clockIcon); //设置时间标签图标
                                topPanel.add(timeLabel);                                //时间标签加入topPanel
                                add(topPanel,BorderLayout.NORTH);                //加入主面板上部
                                timer    =    new    Timer(1000,new TimerListener());//计算器注册监听者

                                /*设置底部面板*/
                                JButton    aboutJB    =    new    JButton("关于");    //创建“关于”按钮
                                JButton    helpJB = new JButton("求救");        //创建“求救”按钮
                                helpJB.addActionListener(helpListener);    //"求救"按钮加入监听者