Java API 分類導覽 - javax.swing.JMenu insert()

JMenu 類別 (class) 的 insert() 方法 (method) 依索引值插入選單選項。



修飾子與參數
public void insert(String s, int pos)
public JMenuItem insert(JMenuItem mi, int pos)
public JMenuItem insert(Action a, int pos)


insert() 有三個參數 (paramenter) 版本,其中一個沒有回傳值 (return value) ,其他兩個都回傳 JMenuItem 型態 (type) 的物件 (object) 。


舉例如下
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
方法method
回傳值return value
型態type
物件object
參數parameter


您可以繼續參考
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

沒有留言: