簡體   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