我正在为我的程序创建一个工具箱,该工具箱是一个弹出窗口,在右键单击时可见。当失去焦点时,它也会隐藏,但这是我的问题。当我在JPopupMenu上添加一个JPanel并将其悬停时,它立即关闭。我认为这与失去焦点有关,但我不确定。我该如何解决?
这是我的代码:
public class ToolBox extends JPopupMenu implements MouseListener {
private Component parent;
public ToolBox(Component parent) {
this.parent = parent;
Box box = Box.createVerticalBox();
String[] list = {"kopieren", "ausschneiden", "einfuegen"};
for(int i = 0; i < list.length; i++) {
JMenuItem item = new JMenuItem(list[i]);
box.add(item);
}
add(box);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1000, 700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
ToolBox box = new ToolBox(panel);
panel.addMouseListener(box);
frame.setVisible(true);
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
show(parent, e.getX(), e.getY());
}
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
}
编辑:
我发现布局不是问题。问题出在专家组。因此,如果不创建bug,就无法将JPanel添加到JPopupMenu。有人知道该如何解决吗?