[英]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.