Swing-jmenuitem-control

提供:Dev Guides
移動先:案内検索

SWING-JMenuItemクラス

前書き

JMenuItemクラスは、メニュー内の実際のアイテムを表します。 メニュー内のすべてのアイテムは、クラスJMenuItemまたはそのサブクラスの1つから派生する必要があります。 デフォルトでは、単純なラベル付きメニュー項目が組み込まれています。

クラス宣言

以下は javax.swing.JMenuItem クラスの宣言です-

public class JMenuItem
   extends AbstractButton
      implements Accessible, MenuElement

クラスコンストラクター

Sr.No. Constructor & Description
1

JMenuItem()

テキストまたはアイコンを設定せずにJMenuItemを作成します。

2

JMenuItem(Action a)

指定されたアクションからプロパティが取得されるメニュー項目を作成します。

3

JMenuItem(Icon icon)

指定されたアイコンでJMenuItemを作成します。

4

JMenuItem(String text)

指定されたテキストでJMenuItemを作成します。

5

JMenuItem(String text, Icon icon)

指定されたテキストとアイコンでJMenuItemを作成します。

6

JMenuItem(String text, int mnemonic)

指定されたテキストとキーボードニーモニックでJMenuItemを作成します。

クラスメソッド

Swing JMenuItem Controlクラスのメソッドのリストを次に示します。

Sr.No. Method & Description
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)

指定したアクションのプロパティと一致するように、このボタンのプロパティを設定します。

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)

このコンポーネントをレンダリングするLook&Feelオブジェクトを設定します。

34

void updateUI()

現在のLook&Feelの値でUIプロパティをリセットします。

継承されるメソッド

このクラスは、次のクラスからメソッドを継承します-

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

JMenuItemの例

たとえば、 D:/> SWING> com> finddevguides> gui> の任意のエディターを使用して、次のJavaプログラムを作成します。

SwingMenuDemo.java

package com.finddevguides.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\finddevguides\gui\SwingMenuDemo.java

エラーが発生しない場合、コンパイルが成功したことを意味します。 次のコマンドを使用してプログラムを実行します。

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

次の出力を確認します。 ([ファイル]メニューをクリックします。 メニュー項目を選択します。)

SWING JMenuItem