Проблема Jnativehook Mouse Listener (Java)

Я пытаюсь сделать логическое значение true, когда я удерживаю левую кнопку мыши, и сделать его ложным, когда я этого не делаю, я пытаюсь использовать "Jnativehook" Mouse Listener "( 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);
        }
    }
}

1 ответ

Вы используете неправильные константы здесь:

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

Если вы посмотрите на NativeMouseEvent API, getButton () вернет 1, если нажата кнопка 1:

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

Вы используете java.util.InputEvent константы, чье значение равно 1024, и которые не используют правильную, даже если это был графический интерфейс Swing. Так что поменяйте на

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

То же самое для других ваших выражений.

Другие вопросы по тегам