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原版游戏中的高级技巧。实现这一功能需要监听鼠标的按键事件,判断按键状态,并相应地更新游戏状态。 代码设计上,我们可以看到游戏逻辑被封装在独立...
游戏中的数字是上下左右周围九个格子的雷的数量,可以通过当前位置和周边的位置的数字想减,判断隐藏的格子后边是否有累,比如当前鼠标位置数字是1,左右键同时按下只有一个格子,这样就能判断出来这个格子是雷,...
开发者可能创建了一个实现了`KeyListener`的类,并将其添加到游戏窗口,以便在用户按下特定键时响应,如左右箭头键控制方块左右移动,下箭头键加速下落,上箭头键旋转方块。 3. **鼠标点击操作**: - 鼠标点击事件...
而在Java版的扫雷游戏中,如果玩家同时按下鼠标左右键,系统会自动标记出一个安全区域,帮助玩家解围,这无疑降低了游戏的难度,使得新手玩家也能更好地享受游戏过程。 从技术角度来看,实现这样的功能需要对Java...
《Java实现2048小游戏详解》 2048是一款简单却极具挑战性的数字合成游戏,由Gabriele Cirulli在2014年开发。本项目以Java编程语言实现了这一经典游戏,旨在为初学者提供一个学习和实践的平台。下面,我们将深入探讨...
通过对这三个类的学习,你可以深入理解2048游戏的实现原理,同时也能巩固和提升你的Java编程能力。此外,这个源代码还提供了扩展和改进的机会,比如增加AI玩家、优化滑动算法或者设计新的界面风格,这些都是锻炼编程...
例如,使用KeyListener监听键盘输入,当用户按下“下”键时加速方块下落,按下“A”和“D”键控制方块左右移动,按下“空格”键旋转方块。 3. **多线程**:俄罗斯方块的运行需要两个主要线程:一个是游戏逻辑线程,...
2048游戏的规则简单但极具挑战性,玩家通过上下左右滑动屏幕,使得数字方块合并成更大的数字,目标是达到2048这个数字。这款游戏在编程教育领域常被用作Java课程设计的项目,旨在让学生熟悉面向对象编程、事件处理和...
在这个推箱子项目中,事件处理可能是用来响应玩家的移动指令,例如键盘上的上下左右键。你需要为JFrame或JPanel等组件添加KeyListener,这样当玩家按下按键时,对应的键盘事件会被捕获并处理。事件处理函数会更新...
- **方块的移动与旋转**:根据用户的输入(上下左右键)调整方块的位置,并通过特定算法实现方块的旋转。 3. **游戏逻辑实现**: - **碰撞检测**:检查方块是否碰到边界或已存在的方块。 - **行消除机制**:当一...
- **键盘操控**:选定角色后,使用上下左右键移动。 - **非法操作回退**:若移动导致重叠,系统自动撤销操作。 - **步数记录**:系统自动计算并显示玩家的移动步数。 - **操作提示**:提供操作指南,帮助玩家...
例如,我们可能会使用键盘监听器来处理玩家的输入,如上下左右箭头控制飞机移动,空格键发射子弹。 事件处理是游戏交互的关键部分。Java提供了事件监听和处理机制,允许程序对用户的输入做出响应。在飞机大战游戏中...
- **事件监听**:Java中的事件处理机制,用于响应用户的输入,如键盘和鼠标事件。 2. **游戏逻辑** - **方块生成**:随机生成不同形状的方块,通常有7种标准形状。 - **方块旋转**:方块可以围绕其中心点进行90...
Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 ...
Java中的MouseListener和MouseMotionListener接口用于处理鼠标事件,比如鼠标的按下、释放、移动等。例如,当用户点击"喜羊羊"图片时,我们可以注册一个MouseListener,通过`mouseClicked()`方法识别这一行为并给予...
* 每次移动鼠标或按方向键后,逐行计算移动后的方格值。每行移动的算法是: + 先将所有值为0的数移至行首 + 能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子 * 每合并一次格子,将其值累计到游戏总分...
9. **用户输入**:通过Java的AWT或Swing库,开发者可以获取用户的键盘和鼠标输入,实现游戏的控制。 10. **游戏保存和加载**:为了让玩家能够继续之前的游戏进度,可以实现存档和读档功能。这通常涉及到序列化和反...
同时,游戏的结束条件判断(无法再进行有效操作)也需要用到循环和条件判断。 三、UI设计 本项目中,UI设计可能采用了JavaFX或Swing库来构建图形用户界面。这些库提供了丰富的组件和布局管理器,使得开发者可以轻松...
- **图形用户界面(GUI)**:为了实现游戏的可视化,开发者可能使用了Java的Swing或JavaFX库来创建窗口、按钮、画布等组件,让玩家可以通过鼠标和键盘操作游戏。 3. **游戏逻辑** - **方块生成**:随机生成不同...
例如,开发者可能为键盘上的方向键设置监听器,控制方块的左右移动和下落速度;而空格键则用于让方块瞬间落地。同时,游戏的计分系统和游戏结束条件也需要通过事件触发来更新。 源代码中的多线程技术也值得一提。...