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

JMenu 類別 (class) 的 setPopupMenuVisible() 方法 (method) 用來設定是否顯示快顯功能表。



修飾子與參數
public void setPopupMenuVisible(boolean b)


setPopupMenuVisible() 沒有回傳值 (return value) ,需要一個 boolean 型態 (type) 的非物件 (object) 常數當參數 (paramenter) 。


舉例如下
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

沒有留言: