Java BasicPopupMenui错误

Java BasicPopupMenui错误,java,swing,popupmenu,Java,Swing,Popupmenu,我试图为Swing创建自己的菜单UI,但遇到了一个错误。我的类扩展了BasicPopupMenui,并包含以下代码: public static ComponentUI createUI(JComponent c) { return new ShadowMenuUI(); } public Popup getPopup(JPopupMenu popup, int x, int y) { Popup pp = super.getPopup(popu

我试图为Swing创建自己的菜单UI,但遇到了一个错误。我的类扩展了BasicPopupMenui,并包含以下代码:

public static ComponentUI createUI(JComponent c) {
        return new ShadowMenuUI();
    }

    public Popup getPopup(JPopupMenu popup, int x, int y) {
        Popup pp = super.getPopup(popup, x, y);
        JPanel panel = (JPanel) popup.getParent();
        panel.setBorder(new ShadowBorder(3, 3));
        panel.setOpaque(false);
        return pp;
    }
如果您想知道,ShadowBorder是我拥有的一个类,它扩展了AbstractBorder并按照我的意愿绘制阴影。当我启动应用程序时,我要做的第一件事就是

 UIManager.put("PopupMenuUI", "ShadowMenuUI");
然后我继续创建我的GUI,并为这个应用程序设置使用Nimbus的L&F。那么,有没有人看到我做错了什么,或者有没有更好的方法来做我正在做的事情

编辑:我得到的错误是

UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JPopupMenu[,0,0,0x0,invalid,layout=javax.swing.plaf. basic.DefaultMenuLayout,alignmentX=0.0,alignmentY=0.0,border =com.apple.laf.AquaMenuBorder@165262ce,flags=8,maximumSize=, minimumSize=,preferredSize=,desiredLocationX=0, desiredLocationY=0,label=System,lightWeightPopupEnabled=true ,margin=,paintBorder=true] java.lang.Error
发现我的问题!!!很抱歉打扰你,但我的问题是当我放ShadowMenuUI时,我忘了包括这个包

你遇到了什么错误?@NathanielWaisbrot哦,是的。对不起,忘了加那个。UIDefaults.getUI失败:没有用于javax.swing.jpopMenu的ComponentUI类[,0,0,0x0,无效,layout=javax.swing.plaf.basic.DefaultMenuLayout,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf。AquaMenuBorder@165262ce,flags=8,maximumSize=,minimumSize=,preferredSize=,desiredLocationX=0,desiredLocationY=0,label=System,lightWeightPopupEnabled=true,margin=,paintBorder=true]java.lang.Error