欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

创建带下拉阴影的菜单,下拉阴影菜单,public class

来源: javaer 分享于  点击 45278 次 点评:280

创建带下拉阴影的菜单,下拉阴影菜单,public class


public class CustomPopupMenuUI extends BasicPopupMenuUI {         public static ComponentUI createUI(JComponent c) {                    return new CustomPopupMenuUI();         }        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;        }    }    class ShadowBorder extends AbstractBorder {         int xoff, yoff;         Insets insets;         public ShadowBorder(int x, int y) {            this.xoff = x;            this.yoff = y;            insets = new Insets(0,0,xoff,yoff);        }        public Insets getBorderInsets( Component c ) {            return insets;        }        public void paintBorder(Component comp, Graphics g,        int x, int y, int width, int height) {        g.setColor(Color.black);        g.translate(x,y);        // draw right side        g.fillRect(width-xoff, yoff, xoff, height-yoff);        // draw bottom side        g.fillRect(xoff, height-yoff, width-xoff, yoff);        g.translate(-x,-y);    } }    public class MenuTest {        public static void main(String[] args) throws Exception {             UIManager.put("PopupMenuUI","CustomPopupMenuUI");            JFrame frame = new JFrame();            JMenuBar mb = new JMenuBar();            frame.setJMenuBar(mb);            JMenu menu = new JMenu("File");            mb.add(menu);            menu.add(new JMenuItem("Open"));            menu.add(new JMenuItem("Save"));            menu.add(new JMenuItem("Close"));            menu.add(new JMenuItem("Exit"));            menu = new JMenu("Edit");            mb.add(menu);            menu.add(new JMenuItem("Cut"));            menu.add(new JMenuItem("Copy"));            menu.add(new JMenuItem("Paste"));            menu.add(new JMenuItem("Paste Special.."));            frame.getContentPane().setLayout(new BorderLayout());            frame.getContentPane().add("North",new JButton("Button"));            frame.getContentPane().add("Center",new JLabel("a label"));            frame.getContentPane().add("South",new JCheckBox("checkbox"));            frame.pack();            frame.setSize(200,150);            frame.show();        }     }//该片段来自于http://byrx.net
相关栏目:

用户点评