点击后台jFrame后,jPopupMenu没有隐藏

时间:2014-03-09 15:14:45

标签: java swing jcheckbox jpopupmenu

我正在使用包含多个JPopupMenu的{​​{1}}。用户可以选中/取消选中多个jCheckBoxMenuItem。但是当我点击CheckBoxJFrame没有隐藏。 这是整个代码。

PopupMenu

请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

首先,您的代码并不是真正做到这一点的最佳方式。每次单击按钮时都不应该创建新菜单,而是创建一次并将其作为字段引用。

PopupMenu无法隐藏的原因是您明确致电setVisible(true);并尝试setVisible(false);在分配给该按钮的同一ActionListener中,而不是帧。

你可以: 1.在框架中添加另一个侦听器,以便在单击时将菜单可见性设置为false 2.使用show方法代替setVisible

menu.show(button1, 0, button1.getHeight());

而不是

menu.setLocation((int) p.getX(), (int) p.getY() + button1.getHeight());
menu.setVisible(true);

但是在我们的情况下,这会导致菜单消失的其他问题。 IMO最好的方法是重新设计你的代码。