如何解决实现鼠标事件的正确方法
| 我有下面的代码,可以在JPanel中显示一张照片。实际上,JPanel正在浏览相册,因此我拥有它,因此,当单击JPanel时,面板将前进到下一帧。我还对其进行了配置,以便如果右键单击JPanel,将显示一个弹出菜单。 我读到,实现弹出菜单时,需要覆盖mousePressed()和mouseReleased()才能捕获所有平台的触发器。但是,由于我有一个与JPanel关联的侦听器,因此当用户单击窗口时,JPanel会前进两张照片。这是可以理解的,但是我应该如何编码,以确保在所有平台上都显示弹出窗口(我的教授可能会在Linux上检查我的程序,而我必须在家中在Windows上对其进行编码)。解决方法
JComponents具有一个属性componentPopupMenu-设置该属性可使您的popupMenu自动显示,而无需在MouseListener中进行任何操作
photoPanel.setComponentPopupMenu(photoPopupMenu);
然后,确保仅在左键单击时发生鼠标触发的操作(前进到下一个)。
,采用
MouseEvent.isPopupTrigger()
确定是否针对平台使用给定事件来显示弹出窗口。
您可以将其放在每种方法中(mousePressed和mouseReleased)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。