我有代码,它在下面,在JPanel中显示一张照片。实际上,JPanel正在浏览相册,我已经拥有它,以便在点击JPanel时,面板前进到下一帧。我也对它进行了配置,以便在右键单击JPanel时,会显示一个弹出菜单。
我读到,在实现弹出菜单时,需要覆盖mousePressed()和mouseReleased()以捕获所有平台的触发器。但是,由于我有一个与JPanel关联的监听器,当用户单击窗口时,JPanel会前进两张照片。这是可以理解的,但是我应该如何对此进行编码以确保我在所有平台上显示弹出窗口(我的教授可以在Linux上检查我的程序,我必须在家里的Windows上编写代码)。
答案 0 :(得分:3)
JComponents有一个属性componentPopupMenu - 设置该属性会使popupMenu自动出现,而无需在MouseListener中进行任何操作
photoPanel.setComponentPopupMenu(photoPopupMenu);
然后确保您的鼠标触发动作(前进到下一个)仅在单个左侧按下时发生。
答案 1 :(得分:2)
使用
MouseEvent.isPopupTrigger()
确定是否应该使用给定事件来显示弹出窗口。
你会把它放在每个方法(mousePressed和mouseReleased)
中