- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试跟踪 BUTTON1
BUTTON2
和 BUTTON3
是否被按下。
问题是在 OSX 上 ctrl + click
被视为右键单击。因此,如果我有以下内容(使用处理):
boolean mouse_left_pressed;
boolean mouse_right_pressed;
void setup() {
size(200, 100);
}
void draw() {
background(0);
fill(255);
text("left: "+mouse_left_pressed, 50, 50);
text("right: "+mouse_right_pressed, 50, 75);
}
public void mousePressed(MouseEvent e) {
if (e.getButton() == LEFT) mouse_left_pressed = true;
if (e.getButton() == RIGHT) mouse_right_pressed = true;
}
public void mouseReleased(MouseEvent e) {
if (e.getButton() == LEFT) mouse_left_pressed = false;
if (e.getButton() == RIGHT) mouse_right_pressed = false;
}
如果我执行以下步骤:
然后,虽然我不再按下鼠标,但 mouse_left_pressed
的状态仍然为 true。有没有办法获取实际释放的鼠标按钮?
最佳答案
这是因为 OSX 中的 Control+左键单击相当于右键单击。这有点麻烦,但您可以按如下方式检查修饰符:
boolean mouse_left_pressed;
boolean mouse_right_pressed;
void setup() {
size(200, 100);
}
void draw() {
background(0);
fill(255);
text("left: "+mouse_left_pressed, 50, 50);
text("right: "+mouse_right_pressed, 50, 75);
}
public void mousePressed(MouseEvent e) {
if (e.getButton() == LEFT) mouse_left_pressed = true;
if (e.getButton() == RIGHT) {
if (!e.isControlDown()) {
mouse_right_pressed = true;
}
else {
mouse_left_pressed = true;
}
}
}
public void mouseReleased(MouseEvent e) {
println(e);
if (e.getButton() == LEFT) mouse_left_pressed = false;
if (e.getButton() == RIGHT) {
if (!e.isControlDown()) {
mouse_right_pressed = false;
}
else {
mouse_left_pressed = false;
}
}
}
关于Java检测OSX上按住ctrl单击释放了哪个mouseButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689763/
这个问题在这里已经有了答案: Most common C# bitwise operations on enums (11 个答案) 关闭 9 年前。 谁能解释一下这是如何工作的? if ((Con
当您从模型中获取鼠标信号到您的槽中时,传递的参数是 QModelIndex。 QModelIndex 不会告诉您按下了什么按钮。所以,我们可以求助于 QApplication::mouseButton
不确定为什么会这样。我在拖放时订阅了 GiveFeedback。 在这个 GiveFeedback 中,我正在检查鼠标左键的状态。如果发布了,我想做“某事”(不重要)。 下面总是返回“释放鼠标按钮”。
我在 System.Windows.Forms 命名空间中找到了这个 gem (IMO)。我正在努力弄清楚为什么要这样设置。 [Flags] public enum MouseButtons {
Control.MouseButtons 的 WPF 版本是什么? 最佳答案 NVM 的答案是错误的。 Control.MouseButtons是一个静态属性,指示当前按下了哪些鼠标按钮。 Input
我想检查左侧按钮是否被按下。 我在 Msdna 上红了: if(e->Button == MouseButtons.Left) {...} //or if(e->Button == ::MouseBu
我在 dojo 1.7.2 上,第一次尝试使用拖放。 在 dojo/dnd/Source.js 中,在函数 _legalMouseDown 中,有这一行: // accept only the lef
我想捕获 MouseButtons.XButton 1 和 2 并启用向后和向前导航。 在 Windows 10 中,我可以使用 捕获鼠标点击 this.PointerPressed += Level
我是一名优秀的程序员,十分优秀!