[英]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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.