JPopupMenu 在 JoptionPane Confirmdialog 上自动隐藏

JPopupMenu auto hide on JoptionPane Confirmdialog

我知道为了防止JOptionpane隐藏在任何帧后面,我们必须将当前帧作为父帧给JOptionpane

我有一个 JTree 和 popupmenu

它有弹出菜单如下

添加
重命名
删除
当我点击删除菜单时,我会调用 showDeleteConfirmation() 来确认是否删除操作

但是如果我使用 currentMainframe(存在 jtree 的那个)作为 JOptionpane 的父框架并且当我单击 JPopumenu 时问题没有隐藏(仍然处于焦点)所以我必须单击 Joptionpane一次(隐藏弹出菜单)然后只有我可以select选项

如果我使用 null 作为 parentframe 它工作得很好(点击它自动隐藏的菜单项)。

如何解决问题

 //Have to click anywhere on JOptionpane to gain focus(also to hide popupmenu)
 public static Boolean showDeleteConfirmation() {
    if (deleteConfirmation) {
        int value = JOptionPane.showConfirmDialog(currentMainFrame, "Are you sure want to delete?", "Delete", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
        return value == JOptionPane.YES_OPTION;
    }
    return true;
}


//This is working perfectly
  public static Boolean showDeleteConfirmation() {
    if (deleteConfirmation) {
        int value = JOptionPane.showConfirmDialog(null, "Are you sure want to delete?", "Delete", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
        return value == JOptionPane.YES_OPTION;
    }
    return true;
}

我在调用之前手动调用了JPopupmenu.hide(),function.It解决了问题