gpt4 book ai didi

java - mouseDragged 不返回适当的按钮

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:04 26 4
gpt4 key购买 nike

我如何知道从 mouseDragged 事件中按下的按钮?

我在 mouseDragged() 中遇到问题,因为接收到的 MouseEventgetButton() 返回 0。我对鼠标位置没有问题,甚至检测鼠标点击也没有问题。 mouseClicked() 事件为 getButton() 返回相应的按钮。

关于我如何做到这一点有什么建议吗?我假设我可以使用 mouseClickedmousePressed 进行变通,但我更愿意将其全部保存在 mouseDragged 中。

感谢您的时间和回答。

最佳答案

正如评论和其他答案中所指出的,SwingUtilities 为这种情况提供了三种方法,它们应该适用于所有 MouseEvents:

SwingUtilities.isLeftMouseButton(aMouseEvent);
SwingUtilities.isRightMouseButton(aMouseEvent);
SwingUtilities.isMiddleMouseButton(aMouseEvent);

至于你的方法有什么问题,getButton() 的 javadoc 说:

Returns which, if any, of the mouse buttons has changed state.

由于按钮的状态在按住时不会改变,getButton() 通常会在 mouseDragged 中返回 NO_BUTTON .要在 mouseDragged 中检查 CtrlAlt 等按钮和修饰符的状态,您可以使用 getModifiersEx()。例如,下面的代码检查 BUTTON1 已关闭但 BUTTON2 未关闭:

int b1 = MouseEvent.BUTTON1_DOWN_MASK;
int b2 = MouseEvent.BUTTON2_DOWN_MASK;
if ((e.getModifiersEx() & (b1 | b2)) == b1) {
// ...
}

关于java - mouseDragged 不返回适当的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17441013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com