Linux中的Java弹出触发器

Jef*_*rey 10 java linux popup

我有一个应用程序,您可以在其中按下并拖动鼠标右键(以及左键按下并拖动以进行不同的操作).但是,在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(),如图所示这里.

附录:

它似乎isPopupTriggermousePressed在Linux中触发的.

是的,它在Mac OS X上是一样的.你必须isPopupTrigger()从两个mousePressed()和那里打电话mouseReleased().有一个相关的例子GraphPanel.