JMenuBarDemo.java 01 package cn.rolia.learning.swing;02 //JMenu 继承自JMenuItem,它们都在javax.swing包中,都实现了Accessible, MenuElement 接口03 import java.awt.Color;04 import javax.swing.JFrame;05 import javax.swing.JMenuBar;06 import javax.swing.JMenu;07 import javax.swing.JMenuItem;08 import javax.swing.JPanel;09 import java.awt.Dimension;10 11 public class JMenuBarDemo12 {13 public static void main (String[] args)14 {15 //try{javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());}catch(Exception e){}16 JPanel panel = new JPanel ();17 panel.setBackground (Color.white);18 panel.setPreferredSize (new Dimension (600,400));19 //JMenu 有箭头(除了顶层的),可以添加JMenu和JMenuItem;20 //JMenuItem 无箭头,不可添加其他菜单项21 JMenu file, edit, search, item, view, format, macro, advance, windows, help;22 file = new JMenu ("File");23 edit = new JMenu ("Edit");24 search = new JMenu ("Search", true);25 item = new JMenu ("Item");26 view = new JMenu ("View");27 format = new JMenu ("Format");28 macro = new JMenu ("Macro");29 advance = new JMenu ("Advance");30 windows = new JMenu ("Windows");31 help = new JMenu ("Help");32 33 JMenuItem xin, open, close, save, saveAs;34 xin = new JMenuItem ("New", 'n');//热键为'n'35 open = new JMenuItem ("Open");36 close = new JMenuItem ("Close");37 save = new JMenuItem ("Save");38 saveAs = new JMenuItem ("Save As");39 40 JMenu del = new JMenu("Del");41 del.add ("Del All");42 JMenuItem delLine = new JMenuItem ("Del Line"); //这行加下行与上行等价43 del.add (delLine);44 delLine.setEnabled (false);45 edit.add (del);46 47 file.add (xin);48 file.add (open);49 file.add (close);50 file.addSeparator ();//加一条分隔线51 file.add (save);52 file.add (saveAs);53 54 55 JMenuBar bar = new JMenuBar ();56 bar.add (file);57 bar.add (edit);58 bar.add (search);59 bar.add (item);60 bar.add (view);61 bar.add (format);62 bar.add (macro);63 bar.add (advance);64 bar.add (windows);65 bar.add (help);66 67 JFrame frame = new JFrame ("JMenuBarDemo");68 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);69 70 frame.setContentPane (panel);71 frame.setJMenuBar (bar);72 frame.pack();73 frame.setVisible(true);74 }75 }