Java笔记(9)

这篇博客详细介绍了Java GUI编程中的事件处理机制,包括事件源、监听器的创建和注册。作者通过一个打地鼠游戏的例子展示了如何进行碰撞检测,特别是鼠标点击事件的监听和处理。此外,还讨论了窗口监听器的不同关闭选项,并提供了相关方法的描述。文章最后展示了一段具体的鼠标点击事件处理代码,用于判断打中或未打中地鼠的情况。
摘要由CSDN通过智能技术生成

目录

事件

事件设计的顺序

动作监听

窗口监听

方法名         描述

打地鼠碰撞检测

事件

    事件源/监听器

    Swing中事件源 通常是 各个组件

1:鼠标事件

2:键盘事件

事件设计的顺序

1:创建事件源

2:创建监听器(监听器 英文名 listener)

3:实例化 对应监听器

4:给事件源 注册监听器

监听器类 可以使用接口实现监听效果 也可以实现抽象类实现效果

验证安装是否成功的方式

    直接输出一个1 用于确认事件是否安

动作监听

actionListener

    没有抽象类 因为接口中也只有一个方法

因为所有组件都走相同监听。但是具体做什么事情 就要靠 对应的信息来判断

actionCommand 动作指令 给组件做设计

setActionCommand

e.GetActionCommand

e代表事件对象  事件对象  用于记录 事件发生的一瞬间有哪些属性

一般只给菜单项 和按钮 使用动作监听

菜单项按钮 和按钮安装一致

窗口监听

设置点X(叉)之后 直接关闭游戏

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

设置点X(叉)之后 隐藏游戏

setDefaultCloseOperation(HIDE_ON_CLOSE);

设置点X(叉)之后不做

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE)

方法名         描述

showConfirmDialog   询问一个确认问题,如 yes/no/cancel。

showInputDialog         提示要求某些输入。

showMessageDialog   告知用户某事已发生。

showOptionDialog    上述三项的大统一 (Grand Unification)。

打地鼠碰撞检测

    public void mouseClicked(MouseEvent e) {
        super.mouseClicked(e);
        System.out.println(e.getPoint());//拿到自己坐标
        if (con.isStart) {
            Rectangle mouseRec = new Rectangle(con.mouse1.mouseX, con.mouse1.mouseY, 70, 70);
            if (mouseRec.contains(e.getPoint()) && con.mouse1.isHit == false) {
                System.out.println("打中了");
                con.mouse1.isHit = true;
                con.nowPlayer.playerPoint +=1;
                con.nowPlayer.Combo += 1;
                //打中之后也要重新绘制
                UI.gameframe.gamepanel.gameleftpanel.repaint();//重新绘制
            } else {
                System.out.println("没打中");
            }

        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五彩大铁猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值