Swing-jmenu-control

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

SWING-JMenuクラス

前書き

Menuクラスは、メニューバーから展開されるプルダウンメニューコンポーネントを表します。

クラス宣言

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

public class JMenu
   extends JMenuItem
      implements Accessible, MenuElement

フィールド

以下は java.awt.Component クラスのフィールドです-

  • protected JMenu.WinListener popupListener -ポップアップのウィンドウを閉じるリスナー。

クラスコンストラクター

Sr.No. Constructor & Description
1

JMenu()

テキストなしで新しいJMenuを構築します。

2

JMenu(Action a)

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

3

JMenu(String s)

指定された文字列をテキストとして新しいJMenuを構築します。

4

JMenu(String s, boolean b)

指定された文字列をテキストとして、ティアオフメニューとして指定されているかどうかを指定して、新しいJMenuを構築します。

クラスメソッド

Swing JMenu Controlクラスのメソッドのリストは次のとおりです。

Sr.No. Method & Description
1

JMenuItem add(Action a)

指定されたActionオブジェクトにアタッチされた新しいメニュー項目を作成し、それをこのメニューの最後に追加します。

2

Component add(Component c)

このメニューの最後にコンポーネントを追加します。

3

Component add(Component c, int index)

このコンテナの指定された位置に、指定されたコンポーネントを追加します。

4

JMenuItem add(JMenuItem menuItem)

このメニューの最後にメニュー項目を追加します。

5

JMenuItem add(String s)

指定されたテキストを使用して新しいメニュー項目を作成し、このメニューの末尾に追加します。

6

void addMenuListener(MenuListener l)

メニューイベントのリスナーを追加します。

7

void addSeparator()

メニューの最後に新しいセパレーターを追加します。

8

void applyComponentOrientation(ComponentOrientation o)

このメニューとそれに含まれるすべてのコンポーネントのComponentOrientationプロパティを設定します。

9

protected PropertyChangeListener createActionChangeListener(JMenuItem b)

アクションの変更が発生するとコントロールを更新する、適切に構成されたPropertyChangeListenerを返します。

10

protected JMenuItem createActionComponent(Action a)

JMenuに追加されたアクションのJMenuItemを作成するファクトリメソッド。

11

protected JMenu.WinListener createWinListener(JPopupMenu p)

ポップアップのウィンドウを閉じるリスナーを作成します。

12

void doClick(int pressTime)

プログラムで「クリック」を実行します。

13

protected void fireMenuCanceled()

このイベントタイプの通知に関心を登録しているすべてのリスナーに通知します。

14

protected void fireMenuDeselected()

このイベントタイプの通知に関心を登録しているすべてのリスナーに通知します。

15

protected void fireMenuSelected()

このイベントタイプの通知に関心を登録しているすべてのリスナーに通知します。

16

AccessibleContext getAccessibleContext()

このJMenuに関連付けられたAccessibleContextを取得します。

17

Component getComponent()

このMenuElementの描画に使用されるjava.awt.Componentを返します。

18

int getDelay()

サブメニューがポップアップまたはダウンするまでの推奨遅延をミリ秒単位で返します。

19

JMenuItem getItem(int pos)

指定された位置にあるJMenuItemを返します。

20

int getItemCount()

セパレーターを含むメニュー上のアイテムの数を返します。

21

Component getMenuComponent(int n)

位置 n のコンポーネントを返します。

22

int getMenuComponentCount()

メニュー上のコンポーネントの数を返します。

23

Component[] getMenuComponents()

メニューのサブコンポーネントのコンポーネントの配列を返します。

24

MenuListener[]getMenuListeners()

addMenuListener()でこのJMenuに追加されたすべてのMenuListenerの配列を返します。

25

JPopupMenu getPopupMenu()

このメニューに関連付けられたポップアップメニューを返します。

26

protected Point getPopupMenuOrigin()

JMenuのポップアップメニューの起点を計算します。

27

MenuElement[] getSubElements()

このメニューコンポーネントのサブメニューを含むMenuElementsの配列を返します。

28

String getUIClassID()

このコンポーネントをレンダリングするL&Fクラスの名前を返します。

29

JMenuItem insert(Action a, int pos)

指定されたActionオブジェクトにアタッチされた新しいメニュー項目を特定の位置に挿入します。

30

JMenuItem insert(JMenuItem mi, int pos)

指定されたJMenuitemを指定された位置に挿入します。

31

void insert(String s, int pos)

指定されたテキストを指定した位置に新しいメニュー項目を挿入します。

32

void insertSeparator(int index)

指定した位置にセパレータを挿入します。

33

boolean isMenuComponent(Component c)

指定されたコンポーネントがサブメニュー階層に存在する場合、trueを返します。

34

boolean isPopupMenuVisible()

メニューのポップアップウィンドウが表示されている場合、trueを返します。

35

boolean isSelected()

メニューが現在選択されている(強調表示されている)場合、trueを返します。

36

boolean isTearOff()

メニューがティアオフできる場合、trueを返します。

37

boolean isTopLevelMenu()

メニューが「トッ​​プレベルメニュー」、つまりメニューバーの直接の子である場合、trueを返します。

38

void menuSelectionChanged(boolean isIncluded)

このメニューをアクティブまたは非アクティブにするためにメニューバーの選択が変更されたときにメッセージが送信されます。

39

protected String paramString()

このJMenuの文字列表現を返します。

40

protected void processKeyEvent(KeyEvent evt)

ニーモニックやアクセラレータなどのキーストロークイベントを処理します。

41

void remove(Component c)

このメニューからコンポーネントcを削除します。

42

void remove(int pos)

このメニューから指定されたインデックスにあるメニュー項目を削除します。

43

void remove(JMenuItem item)

このメニューから指定されたメニュー項目を削除します。

44

void removeAll()

このメニューからすべてのメニュー項目を削除します。

45

void removeMenuListener(MenuListener l)

メニューイベントのリスナーを削除します。

46

void setAccelerator(KeyStroke keyStroke)

setAcceleratorはJMenuに対して定義されていません。

47

void setComponentOrientation(ComponentOrientation o)

このコンポーネント内の要素またはテキストの順序付けに使用される言語依存の方向を設定します。

48

void setDelay(int d)

メニューのPopupMenuがポップアップまたはダウンする前に推奨される遅延を設定します。

49

void setMenuLocation(int x, int y)

ポップアップコンポーネントの場所を設定します。

50

void setModel(ButtonModel newModel)

「メニューボタン」のデータモデルを、ユーザーがメニューを開いたり閉じたりするためにクリックするラベルに設定します。

51

void setPopupMenuVisible(boolean b)

メニューのポップアップの可視性を設定します。

52

void setSelected(boolean b)

メニューの選択状態を設定します。

53

void updateUI()

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

継承されるメソッド

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

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

JMenuの例

たとえば、 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 JMenu