Java API 分類導覽 - javax.swing.JMenu

JMenu 類別 (class) 用為 Swing 中的選單。



修飾子
public class JMenu


父類別
javax.swing.JMenuItem


實作介面
Accessible
MenuElement


建構子
public JMenu()
public JMenu(String s)
public JMenu(Action a)
public JMenu(String s, boolean b)


常用方法
名稱敘述
add()加入選項到選單
addMenuListener()設定選單的事件處理
addSeparator()加入分隔線
getItem()依索引值取得選項
getItemCount()取得選項總數
getPopupMenu()取得快顯功能表物件
insert()依索引值插入選項
insertSeparator()依索引值插入分隔線
isPopupMenuVisible()判斷是否可顯示快顯功能表
isTopLevelMenu()判斷是否為頂層選單
remove()移除選單選項
removeAll()移除所有選單選項
setPopupMenuVisible()設定是否顯示快顯功能表


舉例如下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class MenuDemo {
    JMenuItem item1, item2, item4, item5;
    JFrame frame;
    JMenu demo, item3;
    
    public static void main(String[] args) {
        new MenuDemo();
    }
    
    public MenuDemo() {
        frame = new JFrame("SwingDemo");
        frame.setSize(600, 400);
        frame.setLayout(new GridLayout(6, 4));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JMenu demo = new JMenu("Demo");
        item1 = new JMenuItem("one");
        item2 = new JMenuItem("two");
        demo.add(item1);
        demo.addSeparator();
        demo.add(item2);
        JMenu item3 = new JMenu("three");
        item4 = new JMenuItem("four");
        item5 = new JMenuItem("five");
        item3.add(item4);
        item3.add(item5);
        item3.removeAll();
        demo.add(item3);
        demo.insertSeparator(0);
        demo.insert(item4, 0);
        demo.insert(item5, 0);
        demo.remove(2);
        demo.setPopupMenuVisible(true);
   
        JMenuBar menubar = new JMenuBar();
        menubar.add(demo);
        frame.setJMenuBar(menubar);
        
        frame.setVisible(true);
        
        for (int i = 0; i < demo.getItemCount(); i++) {
            System.out.println(demo.getItem(i));
        }
        System.out.println(demo.getPopupMenu());
        System.out.println("isPopupMenuVisible: " + demo.isPopupMenuVisible());
        System.out.println("isTopLevelMenu: " + demo.isTopLevelMenu());
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:MenuDemo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2012 年 9 月 */


此例的 add 建立選單 JMenu 、選項 JMenuItem ,接著 JMenu 型態的 demo 呼叫 add() 加入 JMenuItem 型態的 item1
demo.add(item1);


加入 item1 之後, demo 呼叫 addSeparator() 加入分隔線
demo.addSeparator();


下面繼續建立一個子選單 item3 ,加入 item4item5 後,再呼叫 removeAll() 移除掉所有選項
JMenu item3 = new JMenu("three");
item4 = new JMenuItem("four");
item5 = new JMenuItem("five");
item3.add(item4);
item3.add(item5);
item3.removeAll();


接著 demo 呼叫 insertSeparator() ,在索引值 0 的地方插入分隔線
demo.insertSeparator(0);


然後 demo 呼叫 insert() ,依序將 item4item5 加入到索引值 0 的地方
demo.insert(item4, 0);
demo.insert(item5, 0);


接著 demo 呼叫 remove() ,移除索引值為 2 的選項
demo.remove(2);


下面 demo 呼叫 setPopupMenuVisible() ,設定顯示快顯功能表
demo.setPopupMenuVisible(true);


最後利用迴圈,以 demo 的 getItemCount() 當作結束條件,依索引值印出所有 getItem() 值,另外印出 getPopupMenu() 、 isPopupMenuVisible() 與 isTopLevelMenu()
for (int i = 0; i < demo.getItemCount(); i++) {
    System.out.println(demo.getItem(i));
}
System.out.println(demo.getPopupMenu());
System.out.println("isPopupMenuVisible: " + demo.isPopupMenuVisible());
System.out.println("isTopLevelMenu: " + demo.isTopLevelMenu());


編譯後執行,結果如下



中英文術語對照
類別class


您可以繼續參考
Swing 元件
  • ButtonGroup
  • JComponent
    • AbstractButton
      • JButton
      • JToggleButton
        • JCheckBox
        • JRadioButton
      • JMenuItem
        • JCheckBoxMenuItem
        • JMenu
        • JRadioButtonMenuItem
    • JColorChooser
    • JComboBox
    • JFileChooser
    • JInternalFrame
    • JLabel
    • JLayeredPane
      • JDesktopPane
    • JList
    • JMenuBar
    • JOptionPane
    • JPanel
    • JPopupMenu
    • JProgressBar
    • JRootPane
    • JScrollBar
    • JScrollPane
    • JSeparator
    • JSlider
    • JSpinner
    • JSplitPane
    • JTabbedPane
    • JTable
    • text.JTextComponent
      • JEditorPane
        • JTextPane
      • JTextField
        • JFormattedTextField
        • JPasswordField
      • JTextArea
    • JToolBar
    • JToolTip
    • JTree
    • JViewport
  • JDialog
  • JFrame
  • JWindow


相關目錄
Java API 分類導覽
Java 教材
首頁


參考資料
http://docs.oracle.com/javase/6/docs/api/javax/swing/JMenu.html

沒有留言: