Java编写的扫雷小程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

整个程序使用了4个类:

Game 用于启动程序, 界面的布置,各种行列的算法。

ExtendButton 继承了Jbutton 用于新建button的各种属性

ShowNum 监听到某个button后,计算出此button周围有几个雷,不同的雷对应不通的图片,类得到button上应加载的图片地址

ViewReSet 此类用于新建一个窗口,用户输入自己想要的行、列、雷数,然后用新的行列雷数new 一个新的Game

biaose dise1 dise2 dise3

dise4 dise5 dise6 dise7

dise8 dise lei biaoji

/****************************************************************运行类创建游戏主窗体

*/

package com.dhl.saolei;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JToolBar;

import javax.swing.KeyStroke;

import javax.swing.Timer;

public class Game extends JFrame implements ActionListener{ private Container myContainer;

private GridLayout myLayout;

private JPanel myPanelMain;

private JPanel myPanel;

private JToolBar myTool;

private JLabel time;

private JLabel labelTime;

private JLabel bombNum;

private JLabel labelBombNum;

private JMenuBar menuBar;

private JMenu menuE, menuH;

private JMenuItem menuItemCZ, menuItemSZ;

private int numBomb, countTime, leaveBomb, numEnd;

private int myRows, myColumns;

private int xis, yis;

private Timer timer;

private ExtendButton[] myButton = null;

//初始化窗体

private void InitView() {

//菜单初始化

this.menuBar = new JMenuBar();

this.menuE = new JMenu("菜单(E)");

this.menuH = new JMenu("帮助(H)");

this.menuItemCZ = new JMenuItem("重置");

this.menuItemCZ.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK _C, InputEvent.CTRL_MASK));

this.menuItemCZ.addActionListener(this);

this.menuE.add(this.menuItemCZ);

this.menuItemSZ = new JMenuItem("设置");

this.menuItemCZ.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK _S, InputEvent.CTRL_MASK));

this.menuItemSZ.addActionListener(this);

this.menuE.add(this.menuItemSZ);

this.menuBar.add(this.menuE);

this.menuBar.add(this.menuH);

setJMenuBar(this.menuBar);

//时间信息初始化

this.myTool = new JToolBar();

this.myTool.setLayout(new GridLayout(1, 4));

this.myTool.setFloatable(false);

BorderLayout borderLayout = new BorderLayout();

this.myPanelMain = new JPanel(borderLayout);

belTime = new JLabel("时间:");

this.time = new JLabel();

this.time.setForeground(Color.RED);

this.time.setFont(new Font("font", Font.PLAIN, 20));

belBombNum = new JLabel("雷数:");

this.bombNum = new JLabel();

this.bombNum.setText(String.valueOf(this.numBomb));

this.bombNum.setForeground(Color.RED);

this.bombNum.setFont(new Font("font", Font.PLAIN, 20));

this.myTool.add(belTime);

this.myTool.add(this.time);

this.myTool.add(belBombNum);

this.myTool.add(this.bombNum);

this.myPanelMain.add(this.myTool, borderLayout.NORTH);

}

相关文档
最新文档