打地鼠小游戏JAVA代码

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

import java.awt.Cursor;

import java.awt.Image;

import java.awt.Point;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.util.Random;

import javax.swing.ImageIcon;

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.Timer;

public class HitMouse extends JFrame implements ActionListener,MouseListener{ boolean isOver=false;//设置标记,游戏是否结束

private String dir="./images/";//图片目录,当前工程下

JLabel jlbMouse;//地鼠

Timer timer;//时间定时器

Random random;//随机数对象,即生成地鼠的位置

int delay=1100;//延迟时间

Toolkit tk;

Image image;

Cursor myCursor;

JLabel showNum,currentGrade,hitNum;

int showNumber=0,hitNumber=0,currentGrades=1;

public HitMouse(){

super("打地鼠");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(449, 395);

this.setLocationRelativeTo(null);//设置窗口在屏幕中心

setbackground();//设置背景

this.getContentPane().setLayout(null);//设置框架布局模式为空,只有这样,才能知道图片的真正位置

//设置鼠标为锤子图片

tk = Toolkit.getDefaultToolkit();

image = tk.createImage(dir+"chui1.png");

myCursor = tk.createCustomCursor(image, new Point(10,10), "xxx");

this.setCursor(myCursor);

setMessage();//设置一些提示信息

//在背景图片的基础上设置地鼠图片

ImageIcon imageMouse = new ImageIcon(dir+"dishu.png");

jlbMouse = new JLabel(imageMouse);

jlbMouse.setSize(80,80);

this.getContentPane().add(jlbMouse);

jlbMouse.setVisible(false);

jlbMouse.addMouseListener(this);//添加鼠标监听

//定时器

timer = new Timer(delay,this);

random = new Random();

timer.start();

addMenu();//添加菜单

this.setResizable(false);//设置窗口大小不能改变

this.setVisible(true);

}

private void addMenu() {

JMenuBar menubar = new JMenuBar();

this.setJMenuBar(menubar);

JMenu game = new JMenu("游戏");

JMenuItem jitemNew = new JMenuItem("新游戏");

jitemNew.setActionCommand("new");

jitemNew.addActionListener(this);

JMenuItem jitemPause = new JMenuItem("暂停");

jitemPause.setActionCommand("pause");

jitemPause.addActionListener(this);

JMenuItem jitemExit = new JMenuItem("退出");

jitemExit.setActionCommand("exit");

jitemExit.addActionListener(this);

game.add(jitemNew);

game.add(jitemPause);

game.addSeparator();//菜单里设置分隔线

game.add(jitemExit);

menubar.add(game);

}

private void setbackground() {

((JPanel)(this.getContentPane())).setOpaque(false);//如果为true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制部分或所有像素,从而允许其底层像素透视出来。

ImageIcon bgImage = new ImageIcon("images/beijing.jpg");

JLabel bgLabel = new JLabel(bgImage);

bgLabel.setBounds(0, 25, bgImage.getIconWidth(), bgImage.getIconHeight());

相关文档
最新文档