Swing-jmenubar-control

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

SWING-JMenuBarクラス

前書き

JMenuBarクラスは、メニューバーの実装を提供します。

クラス宣言

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

public class JMenuBar
   extends JComponent
      implements Accessible, MenuElement

クラスコンストラクター

Sr.No. Constructor & Description
1

JMenuBar()

新しいメニューバーを作成します。

クラスメソッド

Swing JMenuBar Controlクラスのメソッドのリストを以下に示します。

Sr.No. Method & Description
1

JMenu add(JMenu c)

指定されたメニューをメニューバーの最後に追加します。

2

void addNotify()

JComponent.addNotifyをオーバーライドして、このメニューバーを現在のキーボードマネージャーに登録します。

3

AccessibleContext getAccessibleContext()

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

4

Component getComponent()

MenuElementとして実装されます。

5

Component getComponentAtIndex(int i)

廃止予定です。 getComponent(int i)に置き換えられました

6

int getComponentIndex(Component c)

指定されたコンポーネントのインデックスを返します。

7

JMenu getHelpMenu()

メニューバーのヘルプメニューを取得します。

8

Insets getMargin()

メニューバーの境界線とそのメニューの間のマージンを返します。

9

JMenu getMenu(int index)

メニューバーの指定された位置にあるメニューを返します。

10

int getMenuCount()

メニューバーのアイテムの数を返します。

11

SingleSelectionModel getSelectionModel()

単一の選択を処理するモデルオブジェクトを返します。

12

MenuElement[] getSubElements()

MenuElementとして実装されます。 このメニューバーのメニューを返します。

13

MenuBarUI getUI()

メニューバーの現在のUIを返します。

14

String getUIClassID()

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

15

boolean isBorderPainted()

メニューバーの境界線をペイントする必要がある場合はtrueを返します。

16

boolean isSelected()

メニューバーで現在コンポーネントが選択されている場合、trueを返します。

17

void menuSelectionChanged(boolean isIncluded)

MenuElementとして実装され、何もしません。

18

protected void paintBorder(Graphics g)

BorderPaintedプロパティがtrueの場合、メニューバーの境界線をペイントします。

19

protected String paramString()

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

20

protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)

すべての子メニューをチェックするためにサブクラス化されます。

21

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

MenuElementとして実装され、何もしません。

22

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

MenuElementとして実装され、何もしません。

23

void removeNotify()

JComponent.removeNotifyをオーバーライドして、このメニューバーを現在のキーボードマネージャーから登録解除します。

24

void setBorderPainted(boolean b)

境界線をペイントするかどうかを設定します。

25

void setHelpMenu(JMenu menu)

ユーザーがメニューバーで「ヘルプ」オプションを選択したときに表示されるヘルプメニューを設定します。

26

void setMargin(Insets m)

メニューバーの境界とそのメニューの間のマージンを設定します。

27

void setSelected(Component sel)

現在選択されているコンポーネントを設定し、選択モデルに変更を加えます。

28

void setSelectionModel(SingleSelectionModel model)

単一の選択を処理するようにモデルオブジェクトを設定します。

29

void setUI(MenuBarUI ui)

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

30

void updateUI()

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

継承されるメソッド

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

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

JMenuBarの例

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