Java BasicPopupMenui错误
我试图为Swing创建自己的菜单UI,但遇到了一个错误。我的类扩展了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
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