首先准备几个素材图片

需要图片等资源可加q群1005611884
JFrame画一个主页面,设置了全局的行、列和总数,循环添加所有的地鼠(将所有地鼠先隐藏)并注册点击事件

开一个线程用于地鼠显示的事件,生成随机数,显示一个随机位置的地鼠,等设置时间结束,如果没有改变就消失,如此循环执行

添加点击事件,打中地鼠,调用一个线程,执行地鼠消失的事件

所有代码如下:

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 implements Runnable {public JLabel bgLabel;//背景图片public JLabel[] mouses;//老鼠public JLabel jtf; //分数public int score;public Random random = new Random();public Demo() {//锤子Cursor myCursor = null;try {myCursor = Toolkit.getDefaultToolkit().createCustomCursor(ImageIO.read(new File("hammer.png")),new Point(0,0),"");} catch (IOException e) {e.printStackTrace();}setCursor(myCursor);//得分jtf = new JLabel();jtf.setBounds(360,10,235,50);jtf.setFont(new Font("",Font.BOLD,25));jtf.setForeground(Color.blue);jtf.setText("您的得分是:   分");add(jtf);bgLabel = new JLabel(); //背景图片bgLabel.setIcon(new ImageIcon("bgimage.png"));bgLabel.setBounds(0,0,1000,800);setResizable(false);//不能修改窗体大小setTitle("打地鼠");setBounds(300,100,1000,800);mouses = new JLabel[9];for (int i = 0; i < 9; i++) {mouses[i] = new JLabel();mouses[i].setSize(110,110);mouses[i].setIcon(new ImageIcon("mouse.png"));mouses[i].setVisible(false);//监听器mouses[i].addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {score++;jtf.setText("您的得分是:   "+score+"分");repaint();}});add(mouses[i]);}mouses[0].setLocation(285,140);mouses[1].setLocation(515,140);mouses[2].setLocation(745,140);mouses[3].setLocation(285,310);mouses[4].setLocation(515,310);mouses[5].setLocation(745,310);mouses[6].setLocation(285,470);mouses[7].setLocation(515,470);mouses[8].setLocation(745,470);add(bgLabel);setVisible(true);new Thread(this).start();}public static void main(String[] args) {Demo game = new Demo();}@Overridepublic void run() {while(true){try {Thread.sleep(1200);} catch (InterruptedException e) {e.printStackTrace();}int pos = random.nextInt(9);//0-8if(!mouses[pos].isVisible()){mouses[pos].setVisible(true);try {Thread.sleep(1200);} catch (InterruptedException e) {e.printStackTrace();}if(mouses[pos].isVisible()){mouses[pos].setVisible(false);}}}}
}

Java Swing制作超简单版打地鼠小游戏相关推荐

  1. 制作一个简单的switch小游戏

    好的,那么,我们可以这样来制作一个简单的 switch 小游戏: 首先,我们需要先引入所需的库,如 stdio.h 和 stdlib.h. 接着,我们可以使用 printf 和 scanf 函数来输出 ...

  2. 网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码

    网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码 完整代码下载地址:网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码 核心代码 <!DOCTYPE html> <html> ...

  3. java编辑2048小游戏_Java 制作命令行版 2048小游戏

    Java 命令行版 2048小游戏(2020年8月14日) 制作背景 大二即将开学,从头开始学习了一个多月的java,对二维数组的操作稍微熟悉了一些.于是想做一个简单的2048来试一试. 众所周知,2 ...

  4. 【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)

    前言 华容道游戏是一个历史悠久的经典游戏,玩法就是将已经打乱的数字重新调整顺序,使其成为正序排列 正好昨天一个朋友的python老师留下了这道华容道的题目,今天就来学习一下吧 注意!!! 以下内容不包 ...

  5. HTML+js实现简单的打地鼠小游戏

    首先是内容和样式 这里是建立了3*3的方格 statu属性用于记录是否砸中了地鼠 <style type="text/css">*{margin: 0;padding: ...

  6. JAVA课设单人版五子棋小游戏

    内容介绍:该程序为Java课设的单人版五子棋小游戏,通过eclipse编辑,实现了动作事件的监听与处理,以及JavaSwing的界面编程.  编辑排行榜,包含局数,结果,步数,以及"关于我们 ...

  7. 【180730】WinForm打地鼠小游戏源码

    本源码是采用WinForm进行开发的一个并非简单的打地鼠小游戏,有动画效果哈!有打地鼠.计分.过关等功能. 菜单功能: 1.运行游戏后,输入玩家姓名,点击开始 2.用鼠标点击从洞中钻出的地鼠给予打击 ...

  8. 原生JS实现一个简单的打字小游戏

    原生JS实现一个简单的打字小游戏 利用javascript制作一个简单的打字小游戏 之前写了一个贪吃蛇小游戏好像反响不错 今天我来写一个比贪吃蛇更low更简单的打字小游戏 打字小游戏原理 接下来咋们直 ...

  9. 在Web开发中制作个人简历(超简单版)

    在Web开发中制作个人简历(超简单版) 文章目录 一.个人简历效果 二.部分代码解析 三.完整代码 四.实验小结 一.个人简历效果 二.部分代码解析 开头有部分代码以及在之前的文章中解析过,如果想看具 ...

  10. 小程序公共封装ajax,超简单 Promise封装小程序ajax 超好用 以及封装登录

    //网络类 //封装网络请求 const ajax = (ajaxData, method) => { wx.showLoading({ title: '加载中', mask: true }); ...

最新文章

  1. Vue开发跨端应用(三)添加cordova
  2. 元素 context:component-scan 的前缀 context 未绑定。
  3. php文件上传实验总结,53 PHP文件处理(六)文件上传--总结---细说php
  4. P7408-[JOI 2021 Final]ダンジョン 3【贪心,树状数组】
  5. thinking-in-java(21)并发2
  6. maven上传jar到私服
  7. 【janino】janino自定义函数报错A method named xx is not declared in any enclosing class nor through a static
  8. conda环境转移复制和pip包的转移复制以及替换成清华源channels,pip的阿里源
  9. 计算机网络技术计划书,开设计算机网络技术专业项目可研计划书5喜欢就下吧(样例3)...
  10. C++排列组合及应用
  11. 解决word、typora等打不开超链接问题
  12. 无缝衔接的人会遭报应吗_怎么看待分手后无缝衔接的人?
  13. GlobalMapper20如何把mbt或者tif导出为LSV下载一样的瓦片结构(如何提取mbtiles里面的瓦片文件)
  14. 网页能够兼容所有手机浏览器—杂记(2)
  15. python内存持续增长_Python 进程内存增长解决方案
  16. java 三原色_opencv3_java 提取图像的RGB三原色分割图像Split Core.split
  17. C语言实现逆波兰表达式计算函数(含浮点型、整型混合运算)
  18. markdown编辑器_Markdown编辑器
  19. 巴西本地支付PagSeguro
  20. RC522RFID读卡寻卡失败原因

热门文章

  1. 20192209 Exp2-后门原理与实践
  2. 显示一个立方体的两点透视投影图(用数组存放正方体的各顶点坐标)
  3. jQuery基本操作--制作论坛发帖
  4. linux下java的日志在哪里,Linux下的系统日志管理
  5. Java开发一年经验北京薪资,全网首发!
  6. Python实验-小黑屋
  7. 如何用一台普通相机拍照红蓝立体3D图片
  8. 二维码学习笔记(一) | 二维码概述
  9. 新车 合格证 二维码 解密
  10. layer添加元素 openlayer_OpenLayers使用点要素作为标记