简单的打地鼠游戏(java)

Java Swing制作超简单打地鼠游戏 import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.IOException; import java.util.Random; public class Demo extends JFrame imple.. 阅读详情

在学习了javaGUI图形化界面后,做了一个小型的打地鼠游戏,比较简单。对于自己知识的总结。由于没有学习线程,所以这个游戏是由两个定时器控制。后期有待改进。

涉及知识点:JFrame、JPanel、JLabel、JButton、JComboBox、ImageIcon(设置图片)、Timer

PlayMouse.java

package com.briup.day13;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class PlayMouse implements ActionListener {

	private JFrame frame;         // 容器窗口
	private JPanel north, center; // 两个panel容器,放置位置北边和中间
	private JComboBox<String> box; // 放置难易程度,下拉框
	private JLabel timeLabel;     // 时间标签
	private JLabel timeValueLabel; // 时间值
	private JLabel gradeLabel;     // 得分标签
	private JLabel gradeValueLabel; // 得分值
	private JButton startButton;     // 开始按钮
	private JButton[] btns;     // 设置九个按钮
	private ImageIcon img;     // 设置图片
	private Timer timer;         // 存放原来的时间
	private Timer mouseTime;     // 存放老鼠出现的时间
	private int level;         // 难度的等级
	private int old_index;     // 显示九个按钮的下标位置
	private String gameTime;     // 显示游戏时间
	private boolean isNew = false;

	// 窗口初始化
	public PlayMouse() {
		frame = new JFrame("打地鼠");
		frame.setBounds(300, 300, 600, 600);
		frame.setResizable(false);			//窗口不可拉伸
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		initComponent();
		frame.setVisible(true);
	}

	// 添加组件
	public void initComponent() {
		// 初始化其他组件
		north = new JPanel();
		center = new JPanel();
		box = new JComboBox<String>();

		box.addItem("初级");
		box.addItem("中极");
		box.addItem("高级");

		gameTime = "20";
		timeLabel = new JLabel("time: ");
		timeValueLabel = new JLabel(gameTime);
		gradeLabel = new JLabel("grade: ");
		gradeValueLabel = new JLabel("0");
		startButton = new JButton("Start");
		btns = new JButton[9];
		for (int i = 0; i < btns.length; i++) {
			btns[i] = new JButton();
		}

		// 设置按钮的禁用状态
		setEnabledForBtns(false);

		img = new ImageIcon("C:\\Users\\85415\\Desktop\\mouse.png");

		// 设置布局管理器,并添加其他组件
		frame.setLayout(new BorderLayout());
		frame.add(north, BorderLayout.NORTH);
		frame.add(center);

		north.setLayout(new FlowLayout());
		north.add(box);
		north.add(timeLabel);
		north.add(timeValueLabel);
		north.add(gradeLabel);
		north.add(gradeValueLabel);
		north.add(startButton);

		// 设置中间九宫格布局
		center.setLayout(new GridLayout(3, 3));
		for (int i = 0; i < btns.length; i++) {
			center.add(btns[i]);
		}

		// 添加监听器
		for (int i = 0; i < btns.length; i++) {
			btns[i].addActionListener(this);
		}

		box.addActionListener(this);
		startButton.addActionListener(this);

		// 定时器,监听
		timer = new Timer(1000, new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				String text = timeValueLabel.getText();
				int t = Integer.parseInt(text);
				timeValueLabel.setText(--t + "");
				if (t < 0) {
					timeValueLabel.setText(++t + "");
					timer.stop();
					startButton.setEnabled(true);
					mouseTime.stop();
					box.setEnabled(true);
					setEnabledForBtns(false);
					btns[old_index].setIcon(null); //将老鼠出现的按钮清除图片
				}
			}
		});
	}

	// 重写监听动作的方法
	@Override
	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		// 判断是否点击start按钮
		if (source == startButton) {
			startButton.setEnabled(false);
			setEnabledForBtns(true);
			timer.start();
			timeValueLabel.setText(gameTime);
			box.setEnabled(false);
			gradeValueLabel.setText("0");

			// 不同的难度,老鼠出现时间快慢不同
			int boxIndex = box.getSelectedIndex();
			if (boxIndex == 0) {
				level = 1000;
			} else if (boxIndex == 1) {
				level = 700;
			} else if (boxIndex == 2) {
				level = 200;
			}
			mouseTime = new Timer(level, new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {

					btns[old_index].setIcon(null);
					int index = (int) (Math.random()*9);
					btns[index].setIcon(img);    //老鼠随机出现在按钮上
					old_index = index;
				}
			});
			mouseTime.start();

		} else if (source == box) {
				
		} else {

			if (isNew == false) {

				String text = gradeValueLabel.getText();
				int cent = Integer.parseInt(text);
				JButton btn = (JButton) source;

				if (btn.getIcon() != null) {

					gradeValueLabel.setText(++cent + "");
					btn.setIcon(null);
					isNew = true;
				}
			}
			if (isNew == true) {
				String text = gradeValueLabel.getText();
				int cent = Integer.parseInt(text);
				JButton btn = (JButton) source;

				if (btn.getIcon() != null) {

					gradeValueLabel.setText(++cent + "");
					btn.setIcon(null);
					isNew = false;
				}
			}
		}
	}

	// 设置按钮的禁用
	public void setEnabledForBtns(boolean flag) {
		for (int i = 0; i < btns.length; i++) {
			btns[i].setEnabled(flag);
		}
	}

	public static void main(String[] args) {
		new PlayMouse();
	}
}

运行结果:

mouse.png

 

JAVA课程设计 打地鼠 JVA打地鼠游戏 该软件主要目的是娱乐。进入游戏,根据时间的变化系统随机在游戏界面出现一只地鼠图片,玩家只需要在图片消失之前用鼠标左键点击就能够得分,之后出现另外一张,继续游戏。如果想退出游戏,可以单击单击界面右上方的退出按钮。通过游戏,达到娱乐和锻炼反应的效果。 立即下载

相关推荐

java打地鼠游戏代码

java编写的打地鼠游戏,有需要的自己下一下!!

JAVA实验报告18-“打地鼠游戏程序设计.pdf

JAVA实验报告18-“打地鼠游戏程序设计.pdf

打地鼠.rar_java 打地鼠_打地鼠_打地鼠 java_打地鼠java_打地鼠游戏

java语言编写的写游戏打地鼠

GUI的简单应用,打地鼠游戏

首先是GUI的知识清单: 源代码: package jd1908_corejava.ch14.work; //打地鼠游戏 import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.Toolkit; im...

YZChen2014的博客 664

Java 编写打地鼠游戏 窗体程序 完整源码

Java 编写打地鼠游戏 窗体程序 完整源码游戏,可以直接用来做课程设计或者毕业设计;代码功能完善,下载后可以直接运行!!

bangxiecode的博客 3951

简单打地鼠游戏(java)_GUI的简单应用,打地鼠游戏

packagejd1908_corejava.ch14.work;//打地鼠游戏importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.Ac...

weixin_32404293的博客 272

python打地鼠简单代码,打地鼠游戏java代码

大家好,给大家分享一下python打地鼠简单代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!@[top]

2301_81896102的博客 367

一个由java实现的打地鼠游戏

注释很明了,直接就上代码的哈! 打地鼠游戏“` package test;import java.awt.EventQueue; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;import javax.swing.ImageIcon; import javax.swing.JFrame; impor

阿骏的专栏 2万+

java打地鼠游戏

学习java中的图片处理 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.aw

寻找、发现、追求、获得———这就是狼的生活要素 3695

java游戏源码(打地鼠游戏实现)

图片文件夹: eclipse里的显示截图 源代码: package com.iotek.mouse; import java.awt.Color; import java.awt.Font; import java.awt.Image; import java.awt.Point; import java.awt.Toolkit; import java.a

yunteng0923的博客 2万+

今天来玩个打地鼠游戏

if (clickedButton.getText().equals("地鼠")) {buttons[randomIndex].setText("地鼠");setTitle("打地鼠游戏");

m0_61931410的博客 385

java打地鼠游戏_用Java实现打地鼠游戏(简版):

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

weixin_34824510的博客 1303

游戏 打地鼠

这是一个简单打地鼠游戏java实现:  主要用的也只有swing窗体技术。有兴趣也可以玩一玩,遇到些什么简单的bug可以提出来,一起查一下。 图片文件: 1.背景图: 鼠标:         地鼠:        代码: package cn.hncu.HitMouse; import java.awt.Cursor; import java.awt.Dim

Dragon_Dai_2017的博客 1007

打地鼠 java_Java实现的打地鼠游戏

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

weixin_33483567的博客 152

java打地鼠_Java 实现打地鼠游戏

博主是大三的在校大学生,学习计算机的路上,有些自己的感悟,写下来互相讨论下,欢迎吐槽Java使用awt做的图形界面,使用多线程维护两个过程,一个是随机出现老鼠的事件,一个是判断规定时间内消失老鼠import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Cursor;imp...

weixin_39692271的博客 998

java一维打地鼠_Java编程实现打地鼠文字游戏实例代码

控制台输入数字,与随机数匹配,匹配正确则返回“打中了!”匹配错误则返回“太遗憾!没打中!”package hitmouse;import java.util.random;import java.util.scanner;public class hitmouse {public static void main(string[] args) {// todo auto-generated met...

weixin_39535701的博客 285

打地鼠游戏java)

package day12_24; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Font; import java.awt.Image; import java.awt.Point; import

hua_yan_ling的博客 4242

文字游戏 代码 java_Java编程实现打地鼠文字游戏实例代码

控制台输入数字,与随机数匹配,匹配正确则返回“打中了!”匹配错误则返回“太遗憾!没打中!”package hitmouse;import java.util.Random;import java.util.Scanner;public class HitMouse {public static void main(String[] args) {// TODO Auto-generated met...

weixin_35356909的博客 828
上一篇: QQ网络聊天室--Java编程
下一篇: Android报错:java.lang.SecurityException: UID 10297 does not have permission to content:包名/文件名[user 0]
Ever、殇
博客等级 码龄7年 15粉丝 8原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值