我的应用程序支持鼠标右键按下并拖动(还有左键按下并拖动执行不同的操作)。然而,在Linux上运行时,弹出菜单似乎是由mousePressed触发而不是mouseReleased。这会导致每次我按右键进行拖动时,都会触发弹出菜单(与Windows不同,在Windows上是在mouseReleased时触发)。
有什么想法可以解决这个问题吗?
谢谢。
编辑:发布代码
弹出菜单代码
// this is called from mousePressed and mouseReleased
if (e.isPopupTrigger() && !e.isConsumed()) {
// show the popup menu
}
这段代码是在鼠标右键按下/拖动时调用的(这是第三方代码,但它是开源的,因此我可以根据需要进行更改)
// this is called on all mouse events
if (buttonAction.mouseButton != 0)
{
// handle the event
}
GraphPanel
,我明白你的意思。第三方API是否公开其选择模型? - trashgodconsume()/isConsumed()
可能是一种方法,但你总可以占用第三个按钮或使用修饰键作为信号来解决意图。在Mac OS X上,isPopupTrigger()
返回true
当按下控制键时按下按钮一。 - trashgod