加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux中的Java弹出触发器

发布时间:2020-12-14 02:21:25 所属栏目:Linux 来源:网络整理
导读:我有一个应用程序,您可以在其中按下并拖动鼠标右键(以及左键按下并拖动以进行不同的操作).但是,在 linux上运行时,似乎弹出菜单是由mousePressed而不是mouseReleased触发的.这导致每次按下鼠标右键执行拖动时,弹出菜单都会被触发(与windows不同,它是mouseRele
我有一个应用程序,您可以在其中按下并拖动鼠标右键(以及左键按下并拖动以进行不同的操作).但是,在 linux上运行时,似乎弹出菜单是由mousePressed而不是mouseReleased触发的.这导致每次按下鼠标右键执行拖动时,弹出菜单都会被触发(与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
}

解决方法

是的,使用isPopupTrigger(),如 here所示.

附录:

it appears isPopupTrigger is triggered on mousePressed in linux.

是的,它在Mac OS X上是一样的.您必须从mousePressed()和mouseReleased()调用isPopupTrigger(). GraphPanel有一个相关的例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读