繁体   English   中英

Java AWT鼠标事件

[英]Java AWT mouse events

我有一个使用AWT事件模型的小程序。 它有一个布尔值,指示是否按下了左按钮。 这是一个示例代码:

public class Game extends Applet implements MouseListener
{
    boolean isLeftButtonPressed;

    public void init()
    {
        addMouseListener(this);
        isLeftButtonPressed = false;
    }

    public void paint(Graphics g)
    {
        g.drawString("Is Button Pressed: " + isLeftButtonPressed, 20, 20);
    }

@Override
public void mouseClicked(MouseEvent e)
    {
        isLeftButtonPressed = true;
        repaint();
}

    @Override
public void mouseReleased(MouseEvent e)
    {
        isLeftButtonPressed = false;
        repaint();
}

    //Other MouseListener methods not listed but have to be implemented
}

但是似乎左键从未释放过,即使实际上已经释放了它也是如此。 可能是什么问题呢?

方法mouseClicked将在mouseReleased方法之后调用,因此isLgetButtonPressed的值为true。 您必须使用MouseEvent.getButton()方法来检查按下了哪个鼠标按钮。

根本上是不正确的

这些是鼠标事件,

MousePressed ->    a mouse button is pressed
MouseReleased ->   a mouse button is released
MouseClicked ->   a mouse button is clicked (pressed and released)

因此,当您处理click事件时,意味着鼠标被单击并释放。

因此,我认为您必须使用mousepressed而不是clicked。

MouseEvent

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM