目录

JMenuItem

介绍 (Introduction)

JMenuItem类表示菜单中的实际项目。 菜单中的所有项都应该来自JMenuItem类或其子类之一。 默认情况下,它包含一个简单的标签菜单项。

Class 声明 (Class Declaration)

以下是javax.swing.JMenuItem类的声明 -

public class JMenuItem
   extends AbstractButton
      implements Accessible, MenuElement

类构造函数 (Class Constructors)

Sr.No. 构造函数和描述
1

JMenuItem()

创建没有设置文本或图标的JMenuItem。

2

JMenuItem(Action a)

创建一个菜单项,其属性取自指定的Action。

3

JMenuItem(Icon icon)

使用指定的图标创建JMenuItem。

4

JMenuItem(String text)

使用指定的文本创建JMenuItem。

5

JMenuItem(String text, Icon icon)

使用指定的文本和图标创建JMenuItem。

6

JMenuItem(String text, int mnemonic)

使用指定的文本和键盘助记符创建JMenuItem。

Class Methods

Sr.No. 方法和描述
1

protected void actionPropertyChanged(Action action, String propertyName)

更新按钮的状态以响应相关操作中的属性更改。

2

void addMenuDragMouseListener(MenuDragMouseListener l)

将MenuDragMouseListener添加到菜单项。

3

void addMenuKeyListener(MenuKeyListener l)

将MenuKeyListener添加到菜单项。

4

protected void configurePropertiesFromAction(Action a)

设置此按钮上的属性以匹配指定Action中的属性。

5

protected void fireMenuDragMouseDragged(MenuDragMouseEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

6

protected void fireMenuDragMouseEntered(MenuDragMouseEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

7

protected void fireMenuDragMouseExited(MenuDragMouseEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

8

protected void fireMenuDragMouseReleased(MenuDragMouseEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

9

protected void fireMenuKeyPressed(MenuKeyEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

10

protected void fireMenuKeyReleased(MenuKeyEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

11

protected void fireMenuKeyTyped(MenuKeyEvent event)

通知所有已注册对此事件类型的通知感兴趣的听众。

12

KeyStroke getAccelerator()

返回KeyStroke,它用作菜单项的加速器。

13

AccessibleContext getAccessibleContext()

返回与此JMenuItem关联的AccessibleContext。

14

Component getComponent()

返回用于绘制此对象的java.awt.Component。

15

MenuDragMouseListener[] getMenuDragMouseListeners()

返回使用addMenuDragMouseListener()添加到此JMenuItem的所有MenuDragMouseListener的数组。

16

MenuKeyListener[] getMenuKeyListeners()

返回使用addMenuKeyListener()添加到此JMenuItem的所有MenuKeyListener的数组。

17

MenuElement[] getSubElements()

此方法返回一个包含此菜单组件的子菜单组件的数组。

18

String getUIClassID()

返回用于构造用于呈现此组件的L&F类名称的后缀。

19

protected void init(String text, Icon icon)

使用指定的文本和图标初始化菜单项。

20

boolean isArmed()

返回菜单项是否“已布防”。

21

void menuSelectionChanged(boolean isIncluded)

选择或取消选择MenuElement时,由MenuSelectionManager调用。

22

protected String paramString()

返回此JMenuItem的字符串表示形式。

23

void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)

处理从MenuSelectionManager转发的键事件,并在必要时使用MenuSelectionManager的API更改菜单选择。

24

void processMenuDragMouseEvent(MenuDragMouseEvent e)

在菜单中处理鼠标拖动。

25

void processMenuKeyEvent(MenuKeyEvent e)

处理菜单中的击键。

26

void processMouseEvent(MouseEvent e, MenuElement[] path, MenuSelectionManager manager)

处理从MenuSelectionManager转发的鼠标事件,并在必要时使用MenuSelectionManager的API更改菜单选择。

27

void removeMenuDragMouseListener(MenuDragMouseListener l)

从菜单项中删除MenuDragMouseListener。

28

void removeMenuKeyListener(MenuKeyListener l)

从菜单项中删除MenuKeyListener。

29

void setAccelerator(KeyStroke keyStroke)

设置调用菜单项的动作侦听器的组合键,而不导航菜单层次结构。

30

void setArmed(boolean b)

将菜单项标识为“已布防”。

31

void setEnabled(boolean b)

启用或禁用菜单项。

32

void setModel(ButtonModel newModel)

设置此按钮表示的模型。

33

void setUI(MenuItemUI ui)

设置呈现此组件的外观对象。

34

void updateUI()

使用当前外观中的值重置UI属性。

方法继承 (Methods Inherited)

该类继承以下类中的方法 -

  • javax.swing.JAbstractButton
  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JMenuItem示例

使用您选择的任何编辑器创建以下Java程序,例如D:/ 》 SWING 》 com 》 iowiki 》 gui 》

SwingMenuDemo.java

package com.iowiki.gui;
import java.awt.*;
import java.awt.event.*;
public class SwingMenuDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel; 
   public SwingMenuDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingMenuDemo swingMenuDemo = new SwingMenuDemo();     
      swingMenuDemo.showMenuDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      headerLabel = new JLabel("",JLabel.CENTER );
      statusLabel = new JLabel("",JLabel.CENTER);        
      statusLabel.setSize(350,100);
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());
      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showMenuDemo(){
      //create a menu bar
      final JMenuBar menuBar = new JMenuBar();
      //create menus
      JMenu fileMenu = new JMenu("File");
      JMenu editMenu = new JMenu("Edit"); 
      final JMenu aboutMenu = new JMenu("About");
      final JMenu linkMenu = new JMenu("Links");
      //create menu items
      JMenuItem newMenuItem = new JMenuItem("New");
      newMenuItem.setMnemonic(KeyEvent.VK_N);
      newMenuItem.setActionCommand("New");
      JMenuItem openMenuItem = new JMenuItem("Open");
      openMenuItem.setActionCommand("Open");
      JMenuItem saveMenuItem = new JMenuItem("Save");
      saveMenuItem.setActionCommand("Save");
      JMenuItem exitMenuItem = new JMenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");
      JMenuItem cutMenuItem = new JMenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");
      JMenuItem copyMenuItem = new JMenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");
      JMenuItem pasteMenuItem = new JMenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
      MenuItemListener menuItemListener = new MenuItemListener();
      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);
      final JCheckBoxMenuItem showWindowMenu = new JCheckBoxMenuItem(
         "Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            } else {
               menuBar.remove(aboutMenu);
            }
         }
      });
      final JRadioButtonMenuItem showLinksMenu = new JRadioButtonMenuItem(
         "Show Links", true);
      showLinksMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(menuBar.getMenu(3)!= null){
               menuBar.remove(linkMenu);
               mainFrame.repaint();
            } else {                   
               menuBar.add(linkMenu);
               mainFrame.repaint();
            }
         }
      });
      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(showLinksMenu);       
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);        
      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);
      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);       
      menuBar.add(linkMenu);
      //add menubar to the frame
      mainFrame.setJMenuBar(menuBar);
      mainFrame.setVisible(true);     
   }
   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() + " JMenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。 转到D:/ 》 SWING并键入以下命令。

D:\SWING>javac com\iowiki\gui\SwingMenuDemo.java

如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。

D:\SWING>java com.iowiki.gui.SwingMenuDemo

验证以下输出。 (单击“文件”菜单。选择任何菜单项。)

SWING JMenuItem
↑回到顶部↑
WIKI教程 @2018