0

我试图在按住左键时将布尔值设为真,当我没有左键时将其设为假,我正在尝试使用“Jnativehook”鼠标监听器”(https://github.com/kwhat/jnativehook/wiki /Mouse ) 但布尔值没有改变。

代码:

package me.ordinals;

import org.jnativehook.mouse.*;

import java.awt.event.InputEvent;

public class mouseHandler implements NativeMouseListener {
    @Override
    public void nativeMouseClicked(NativeMouseEvent nativeMouseEvent) {
    }

    @Override
    public void nativeMousePressed(NativeMouseEvent nativeMouseEvent) {
        if (nativeMouseEvent.getButton() == InputEvent.BUTTON1_DOWN_MASK) {
            ac.getInstance().setToggled(true);
        }
    }

    @Override
    public void nativeMouseReleased(NativeMouseEvent nativeMouseEvent) {
        if (nativeMouseEvent.getButton() == InputEvent.BUTTON1_DOWN_MASK) {
            ac.getInstance().setToggled(false);
        }
    }
}
4

1 回答 1

0

您在这里使用了错误的常量:

if (nativeMouseEvent.getButton() == InputEvent.BUTTON1_DOWN_MASK) {

如果您查看NativeMouseEvent API,如果按下按钮 1,getButton() 将返回 1:

/** Indicates mouse button #1; used by getButton(). */
public static final int BUTTON1                 = 1;    

您正在使用java.util.InputEvent值为 1024 的常量,并且没有使用正确的常量,即使这是 Swing GUI。所以改为

if (nativeMouseEvent.getButton() == NativeMouseEvent.BUTTON1) {

你的其他表达方式也一样。

于 2018-11-01T19:36:45.870 回答