我有一个应用程序,您可以在其中按下并拖动鼠标右键(以及左键按下并拖动以进行不同的操作).但是,在linux上运行时,似乎弹出菜单是由mousePressed而不是mouseReleased触发的.这导致每次按下鼠标右键执行拖动时,都会触发弹出菜单(与windows不同,它是mouseReleased).
有关如何解决这个问题的任何想法?
谢谢.
编辑:发布代码
弹出菜单的代码
// this is called from mousePressed and mouseReleased
if (e.isPopupTrigger() && !e.isConsumed()) {
// show the popup menu
}
Run Code Online (Sandbox Code Playgroud)
这个代码是在鼠标右键/拖动时调用的(这是第三方代码,但它是开源的,所以我可以根据需要进行更改)
// this is called on all mouse events
if (buttonAction.mouseButton != 0)
{
// handle the event
}
Run Code Online (Sandbox Code Playgroud)
tra*_*god 13
是的,使用isPopupTrigger(),如图所示这里.
附录:
它似乎
isPopupTrigger是mousePressed在Linux中触发的.
是的,它在Mac OS X上是一样的.你必须isPopupTrigger()从两个mousePressed()和那里打电话mouseReleased().有一个相关的例子GraphPanel.