日期:2014-05-20 浏览次数:20825 次
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); //"求救"按钮加入监听者