java - 实现鼠标事件的正确方法

标签 java swing

我有代码,在下面,它在 JPanel 中显示一张照片。实际上,JPanel 正在浏览相册,我拥有它,因此当单击 JPanel 时,面板会前进到下一帧。我还对其进行了配置,以便在右键单击 JPanel 时显示弹出菜单。

我读到,在实现弹出菜单时,需要重写 mousePressed() 和 mouseReleased() 才能捕获所有平台的触发器。但是,由于我有一个与 JPanel 关联的监听器,因此当用户单击该窗口时,JPanel 会显示两张照片。这是可以理解的,但我应该如何编码才能确保在所有平台上显示弹出窗口(我的教授可能会检查我在 Linux 上的程序,而我必须在家里在 Windows 上对其进行编码)。

最佳答案

JComponents 有一个属性 componentPopupMenu - 设置该属性可以让你的弹出菜单自动出现,而不需要在 MouseListener 中做任何努力

 photoPanel.setComponentPopupMenu(photoPopupMenu);

然后确保您的鼠标触发操作(前进到下一个)仅在单击左键时发生。

关于java - 实现鼠标事件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657757/

相关文章:

java - 在响应文件下载时重新启用表单提交按钮

java - 任务调度陷入困境

java - 从 Intent 获取上下文

java - 如何获取在 JTextPane 渲染 HTML 页面中选择的文本的 HTML

java - 如何在java 1.5中向透明JFrame添加非透明组件?

java - JideSplitPane比例

java - 确定选择哪个 JRadioButton 的最佳方法是什么?

java - 为什么这个通用方法没有给出编译时错误?

java - Catch with multiple exceptions 不捕获混淆构建中的异常

java - 在命令提示符下运行时图像出现 NullPointerException