打地鼠小游戏JAVA代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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());