java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.JMenuBar
在介紹JMenu組件前,咱們先介紹JMenuBar組件,JMenuBar組件的功能是用來擺入JMenu組件.當咱們創建完許多的JMenu組件後, 須要經過JMenuBar組件來將JMenu組件加入到窗口中.雖然咱們由下表中看出JMenuBar組件只有一種構造方式,可是它對於構造一個菜 單來講是個不可缺乏的組件. java
JMenuBar():創建一個新的JMenuBar; 因爲構造一個空的JMenuBar而後設置到窗口上對於窗口來講是沒有意義的,所以JMenuBar須要結合至少一個以上的JMenu組件才 會在畫面上顯現出視覺的效果,因此JMenuBar的構造方法及範例咱們留到JMenu的第一個範例中再加以說明. cors
java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.AbstractButton --javax.swing.JMenuItem --javax.swing.JMenu 函數
JMenu組件是用來存放和整合JMenuItem的組件,這個組件也是在構成一個菜單中不可或缺的組件之一.JMenu能夠是單一層次的結 構也能夠是一個層次式的結構,要使用何種形式的結構取決於界面設計上的須要而定,以下表所示: 工具
在看過JMenu的構造函數以後,咱們先來看一個具備圖標菜單的範例: ui
import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.util.*; import com.incors.plaf.alloy.*; import com.incors.plaf.alloy.themes.glass.*; public class JMenu1 extends JFrame { JTextArea theArea = null; public JMenu1() { super("JMenu1"); theArea = new JTextArea(); theArea.setEditable(false); getContentPane().add(new JScrollPane(theArea)); JMenuBar MBar = new JMenuBar(); // 調用自行編寫的buildFileMenu()方法來構造JMenu. JMenu mfile = buildFileMenu(); MBar.add(mfile); // 將JMenu加入JMenuBar中. setJMenuBar(MBar);// 將JMenuBar設置到窗口中. }// end of JMenu1() public JMenu buildFileMenu() { JMenu thefile = new JMenu("File"); thefile.setIcon(new ImageIcon("icons/file.gif")); return thefile; }// end of buildFileMenu() public static void main(String[] args) { SwingUtil.setLookAndFeel(); JFrame F = new JMenu1(); F.setSize(400, 200); F.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });// end of addWindowListener F.setVisible(true); } // end of main }// end of class JMenu1 class SwingUtil { public static final void setLookAndFeel() { try { Font font = new Font("JFrame", Font.PLAIN, 12); Enumeration keys = UIManager.getLookAndFeelDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); if (UIManager.get(key) instanceof Font) { UIManager.put(key, font); } } AlloyLookAndFeel.setProperty("alloy.isLookAndFeelFrameDecoration", "true"); AlloyTheme theme = new GlassTheme(); LookAndFeel alloyLnF = new AlloyLookAndFeel(theme); UIManager.setLookAndFeel(alloyLnF); } catch (UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } } }