Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 799|回复: 0

[Java游戏学习]JAVA打地鼠游戏

  [复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-16 15:08:03 | 显示全部楼层 |阅读模式



    1. import java.awt.EventQueue;
    2. import java.awt.event.MouseAdapter;
    3. import java.awt.event.MouseEvent;
    4. import javax.swing.ImageIcon;
    5. import javax.swing.JFrame;
    6. import javax.swing.JLabel;
    7. import javax.swing.JOptionPane;
    8. import java.awt.event.WindowAdapter;
    9. import java.awt.event.WindowEvent;
    10. public class Shrewmouse extends JFrame implements Runnable {
    11.    
    12.     /**
    13.      *
    14.      */
    15.     private static final long serialVersionUID = 8752899717443325480L;
    16.     private JLabel[] mouses; // 存放显示地鼠的标签数组
    17.     private ImageIcon imgMouse; // 地鼠图片对象
    18.     private static int times;
    19.    
    20.     /**
    21.      * Launch the application
    22.      *
    23.      * @param args
    24.      */
    25.     public static void main(String args[]) {
    26.         EventQueue.invokeLater(new Runnable() {
    27.             public void run() {
    28.                 try {
    29.                     Shrewmouse frame = new Shrewmouse();
    30.                     frame.setVisible(true);
    31.                     new Thread(frame).start();
    32.                 } catch (Exception e) {
    33.                     e.printStackTrace();
    34.                 }
    35.             }
    36.         });
    37.     }
    38.    
    39.     /**
    40.      * Create the frame
    41.      */
    42.     public Shrewmouse() {
    43.         super();
    44.         addWindowListener(new WindowAdapter() {
    45.             @Override
    46.             public void windowClosing(WindowEvent e) {
    47.                 do_this_windowClosing(e);
    48.             }
    49.         });
    50.         setResizable(false); // 禁止调整窗体大小
    51.         getContentPane().setLayout(null); // 窗体不使用布局管理器
    52.         setTitle("简易打地鼠游戏"); // 设置窗体标题
    53.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    54.         // 初始化背景图片对象
    55.         ImageIcon img = new ImageIcon(getClass().getResource("background.jpg"));
    56.         // 初始化地鼠图片对象
    57.         imgMouse = new ImageIcon(getClass().getResource("mouse.png"));
    58.         mouses = new JLabel[6]; // 创建显示地鼠的标签数组
    59.         for (int i = 0; i < 6; i++) { // 遍历数组
    60.             mouses[i] = new JLabel(); // 初始化每一个数组元素
    61.             // 设置标签与地鼠图片相同大小
    62.             mouses[i].setSize(imgMouse.getIconWidth(), imgMouse.getIconHeight());
    63.             mouses[i].addMouseListener(new MouseAdapter() { // 为标签添加鼠标事件监听适配器
    64.                         /**
    65.                          * 处理鼠标单击事件的方法
    66.                          */
    67.                         @Override
    68.                         public void mouseClicked(MouseEvent e) {
    69.                             Object source = e.getSource(); // 获取事件源,即地鼠标签
    70.                             if (source instanceof JLabel) { // 如果事件源是标签组件
    71.                                 JLabel mouse = (JLabel) source; // 强制转换为JLabel标签
    72.                                 mouse.setIcon(null); // 取消标签图标
    73.                                 times++;
    74.                             }
    75.                         }
    76.                     });
    77.             getContentPane().add(mouses[i]); // 添加显示地鼠的标签到窗体
    78.         }
    79.         
    80.         mouses[0].setLocation(253, 300); // 设置每个标签的位置
    81.         mouses[1].setLocation(333, 250);
    82.         mouses[2].setLocation(388, 296);
    83.         mouses[3].setLocation(362, 364);
    84.         mouses[4].setLocation(189, 353);
    85.         mouses[5].setLocation(240, 409);
    86.         
    87.         final JLabel backLabel = new JLabel(); // 创建显示背景的标签
    88.         // 设置标签与背景图片相同大小
    89.         backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
    90.         // 设置窗体近似背景图片大小
    91.         setBounds(100, 100, img.getIconWidth(), img.getIconHeight() + 30);
    92.         backLabel.setIcon(img); // 添加背景到标签
    93.         getContentPane().add(backLabel); // 添加背景标签到窗体
    94.     }
    95.    
    96.     /**
    97.      * 线程的核心方法
    98.      */
    99.     public void run() {
    100.         while (true) { // 使用无限循环
    101.             try {
    102.                 Thread.sleep(1000); // 使线程休眠1秒
    103.                 int index = (int) (Math.random() * 6); // 生成随机的地鼠索引
    104.                 if (mouses[index].getIcon() == null) // 如果地鼠标签没有设置图片
    105.                     mouses[index].setIcon(imgMouse); // 为该标签添加地鼠图片
    106.             } catch (InterruptedException e) {
    107.                 e.printStackTrace();
    108.             }
    109.         }
    110.     }
    111.    
    112.     protected void do_this_windowClosing(WindowEvent e) {
    113.         JOptionPane.showMessageDialog(this, "您一共打了" + times + "次地鼠~", null, JOptionPane.INFORMATION_MESSAGE);
    114.     }
    115. }
    复制代码


       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/16/150802671.rar
    回复

    使用道具 举报

    该用户从未签到

    发表于 2014-10-19 23:35:09 | 显示全部楼层
    为什么源代码全是乱码啊。求请教啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2014-10-25 19:56:00 | 显示全部楼层
    stone了 发表于 2014-10-19 23:35
    为什么源代码全是乱码啊。求请教啊

    不是乱码 啊 是你的Java文件没有设置好字符集。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-4 01:27 , Processed in 0.400861 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表