JMenuBar組件

菜單與工具欄的使用與介紹

12-1:使用JMenuBar組件:

JMenuBar的類層次結構圖:
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而後設置到窗口上對於窗口來講是沒有意義的,所以JMenuBar須要結合至少一個以上的JMenu組件才 會在畫面上顯現出視覺的效果,因此JMenuBar的構造方法及範例咱們留到JMenu的第一個範例中再加以說明. cors

12-1:使用JMenu組件:

JMenu的類層次結構圖:

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構造函數:
  • JMenu():創建一個新的JMenu.
  • JMenu(Action a):創建一個支持Action的新的JMenu.
  • JMenu(String s):以指定的字符串名稱創建一個新的JMenu.
  • JMenu(String,Boolean b):以指定的字符串名稱創建一個新的JMenu並決定這個菜單是否能夠下拉式的屬性.

12-1-2:構造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();
		}
	}
}
相關文章
相關標籤/搜索