`

Java判断鼠标左右键同时按下

阅读更多

The button mask returned by InputEvent.getModifiers() reflects only the button that changed state, not the current state of all buttons. (Note: Due to overlap in the values of ALT_MASK/BUTTON2_MASK and META_MASK/BUTTON3_MASK, this is not always true for mouse events involving modifier keys). To get the state of all buttons and modifier keys, use InputEvent.getModifiersEx().

InputEvent.getModifiers()只能反射单个键的更改状态,如果想获得组合键的状态,必须用InputEvent.getModifiersEx().

下面的代码我测试过,可以判断:

gText.addMouseListener(new MouseAdapter() {
     public void mousePressed(MouseEvent e)  {
         if(e.getButton()==e.BUTTON1 )
             gLabel.setText("button1"); //判断左键

         if( e.getButton()==e.BUTTON3)
             gLabel.setText("button3");//判断右键

         if(e.getModifiersEx()==(e.BUTTON3_DOWN_MASK + e.BUTTON1_DOWN_MASK))
             gLabel.setText("bt1+bt3!"); //判断左右键同时按下

         if(e.getModifiersEx()==(e.SHIFT_DOWN_MASK + e.BUTTON1_DOWN_MASK))
             gLabel.setText("shift+bt1");// shift+左键
             //其他雷同,修改常量值就可以
     }
});
 

 

分享到:
评论

相关推荐

    扫雷完美实现(带鼠标左右键算法分析)

    而左右键同时按下,则会触发特殊操作,即自动开块,这是Windows原版游戏中的高级技巧。实现这一功能需要监听鼠标的按键事件,判断按键状态,并相应地更新游戏状态。 代码设计上,我们可以看到游戏逻辑被封装在独立...

    基于JavaSwing实现的扫雷小游戏

    游戏中的数字是上下左右周围九个格子的雷的数量,可以通过当前位置和周边的位置的数字想减,判断隐藏的格子后边是否有累,比如当前鼠标位置数字是1,左右键同时按下只有一个格子,这样就能判断出来这个格子是雷,...

    用Java实现经典小游戏:俄罗斯方块,可用键盘操作,也可用鼠标点击进行操作.zip

    开发者可能创建了一个实现了`KeyListener`的类,并将其添加到游戏窗口,以便在用户按下特定键时响应,如左右箭头键控制方块左右移动,下箭头键加速下落,上箭头键旋转方块。 3. **鼠标点击操作**: - 鼠标点击事件...

    windows经典扫雷游戏Java版

    而在Java版的扫雷游戏中,如果玩家同时按下鼠标左右键,系统会自动标记出一个安全区域,帮助玩家解围,这无疑降低了游戏的难度,使得新手玩家也能更好地享受游戏过程。 从技术角度来看,实现这样的功能需要对Java...

    java2048小游戏

    《Java实现2048小游戏详解》 2048是一款简单却极具挑战性的数字合成游戏,由Gabriele Cirulli在2014年开发。本项目以Java编程语言实现了这一经典游戏,旨在为初学者提供一个学习和实践的平台。下面,我们将深入探讨...

    2048游戏源代码java版.zip

    通过对这三个类的学习,你可以深入理解2048游戏的实现原理,同时也能巩固和提升你的Java编程能力。此外,这个源代码还提供了扩展和改进的机会,比如增加AI玩家、优化滑动算法或者设计新的界面风格,这些都是锻炼编程...

    JAVA版俄罗斯方块

    例如,使用KeyListener监听键盘输入,当用户按下“下”键时加速方块下落,按下“A”和“D”键控制方块左右移动,按下“空格”键旋转方块。 3. **多线程**:俄罗斯方块的运行需要两个主要线程:一个是游戏逻辑线程,...

    Java实现的小游戏2048

    2048游戏的规则简单但极具挑战性,玩家通过上下左右滑动屏幕,使得数字方块合并成更大的数字,目标是达到2048这个数字。这款游戏在编程教育领域常被用作Java课程设计的项目,旨在让学生熟悉面向对象编程、事件处理和...

    java swing 事件处理小项目(推箱子)

    在这个推箱子项目中,事件处理可能是用来响应玩家的移动指令,例如键盘上的上下左右键。你需要为JFrame或JPanel等组件添加KeyListener,这样当玩家按下按键时,对应的键盘事件会被捕获并处理。事件处理函数会更新...

    java俄罗斯方块视频教程

    - **方块的移动与旋转**:根据用户的输入(上下左右键)调整方块的位置,并通过特定算法实现方块的旋转。 3. **游戏逻辑实现**: - **碰撞检测**:检查方块是否碰到边界或已存在的方块。 - **行消除机制**:当一...

    java华容道课程设计

    - **键盘操控**:选定角色后,使用上下左右键移动。 - **非法操作回退**:若移动导致重叠,系统自动撤销操作。 - **步数记录**:系统自动计算并显示玩家的移动步数。 - **操作提示**:提供操作指南,帮助玩家...

    java完成飞机大战游戏开发

    例如,我们可能会使用键盘监听器来处理玩家的输入,如上下左右箭头控制飞机移动,空格键发射子弹。 事件处理是游戏交互的关键部分。Java提供了事件监听和处理机制,允许程序对用户的输入做出响应。在飞机大战游戏中...

    JAVA做的俄罗斯方块小游戏

    - **事件监听**:Java中的事件处理机制,用于响应用户的输入,如键盘和鼠标事件。 2. **游戏逻辑** - **方块生成**:随机生成不同形状的方块,通常有7种标准形状。 - **方块旋转**:方块可以围绕其中心点进行90...

    Java 2实用教程(第三版)实验指导与习题解答

    Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 ...

    Java课程设计包括运用程序,源代码,图片

    Java中的MouseListener和MouseMotionListener接口用于处理鼠标事件,比如鼠标的按下、释放、移动等。例如,当用户点击"喜羊羊"图片时,我们可以注册一个MouseListener,通过`mouseClicked()`方法识别这一行为并给予...

    JAVA小游戏2048需求分析.doc

    * 每次移动鼠标或按方向键后,逐行计算移动后的方格值。每行移动的算法是: + 先将所有值为0的数移至行首 + 能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子 * 每合并一次格子,将其值累计到游戏总分...

    java马里奥

    9. **用户输入**:通过Java的AWT或Swing库,开发者可以获取用户的键盘和鼠标输入,实现游戏的控制。 10. **游戏保存和加载**:为了让玩家能够继续之前的游戏进度,可以实现存档和读档功能。这通常涉及到序列化和反...

    使用java开发的2048小游戏,包含ui设计,声音等.zip

    同时,游戏的结束条件判断(无法再进行有效操作)也需要用到循环和条件判断。 三、UI设计 本项目中,UI设计可能采用了JavaFX或Swing库来构建图形用户界面。这些库提供了丰富的组件和布局管理器,使得开发者可以轻松...

    java_俄罗斯方块小游戏.zip

    - **图形用户界面(GUI)**:为了实现游戏的可视化,开发者可能使用了Java的Swing或JavaFX库来创建窗口、按钮、画布等组件,让玩家可以通过鼠标和键盘操作游戏。 3. **游戏逻辑** - **方块生成**:随机生成不同...

    俄罗斯方块Java源代码极品收藏

    例如,开发者可能为键盘上的方向键设置监听器,控制方块的左右移动和下落速度;而空格键则用于让方块瞬间落地。同时,游戏的计分系统和游戏结束条件也需要通过事件触发来更新。 源代码中的多线程技术也值得一提。...

Global site tag (gtag.js) - Google Analytics