我正在使用包含多个JPopupMenu
的{{1}}。用户可以选中/取消选中多个jCheckBoxMenuItem
。但是当我点击CheckBox
时JFrame
没有隐藏。
这是整个代码。
PopupMenu
请帮忙。感谢。
答案 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最好的方法是重新设计你的代码。