Как использовать меню в Swing приложениях

JMenuBar

Этот совет Java Swing иллюстрирует метод desinging собственных пунктов меню. Разработчик может использовать этот отзыв, чтобы обеспечить стандартный вид их применения, где все параметры и функциональные возможности приложения присутствуют как элементы меню.


import javax.swing.*;

import java.awt.event.*;

import java.awt.*;



public class MenuTest extends JFrame {

   private Color colorValues[] 

      Color.black, Color.blue, Color.red, Color.green };   

   private JRadioButtonMenuItem colorItems[], fonts[];

   private JCheckBoxMenuItem styleItems[];

   private JLabel display;

   private ButtonGroup fontGroup, colorGroup;

   private int style;



   public MenuTest()

   {

      super"Using JMenus" );     



      JMenuBar bar = new JMenuBar();  // create menubar

      setJMenuBarbar );  // set the menubar for the JFrame



      // create File menu and Exit menu item

      JMenu fileMenu = new JMenu"File" );

      fileMenu.setMnemonic'F' );

      JMenuItem aboutItem = new JMenuItem"About..." );

      aboutItem.setMnemonic'A' );

      aboutItem.addActionListener(

         new ActionListener() {

            public void actionPerformedActionEvent e )

            {

               JOptionPane.showMessageDialogMenuTest.this,

                  "This is an example\nof using menus",

                  "About", JOptionPane.PLAIN_MESSAGE );

            }

         }

      );

      fileMenu.addaboutItem );



      JMenuItem exitItem = new JMenuItem"Exit" );

      exitItem.setMnemonic'x' );

      exitItem.addActionListener(

         new ActionListener() {

            public void actionPerformedActionEvent e )

            {

               System.exit);

            }

         }

      );

      fileMenu.addexitItem );

      bar.addfileMenu );    // add File menu



      // create the Format menu, its submenus and menu items

      JMenu formatMenu = new JMenu"Format" );  

      formatMenu.setMnemonic'r' );



      // create Color submenu

      String colors[] 

         "Black""Blue""Red""Green" };

      JMenu colorMenu = new JMenu"Color" );

      colorMenu.setMnemonic'C' );

      colorItems = new JRadioButtonMenuItemcolors.length ];

      colorGroup = new ButtonGroup();

      ItemHandler itemHandler = new ItemHandler();



      for int i = 0; i < colors.length; i++ ) {

         colorItems

            new JRadioButtonMenuItemcolors] );

         colorMenu.addcolorItems] );

         colorGroup.addcolorItems] );

         colorItems].addActionListeneritemHandler );

      }



      colorItems].setSelectedtrue );

      formatMenu.addcolorMenu );

      formatMenu.addSeparator();



      // create Font submenu

      String fontNames[] 

         "TimesRoman""Courier""Helvetica" };

      JMenu fontMenu = new JMenu"Font" )

      fontMenu.setMnemonic'n' );

      fonts = new JRadioButtonMenuItemfontNames.length ];

      fontGroup = new ButtonGroup();



      for int i = 0; i < fonts.length; i++ ) {

         fonts=

            new JRadioButtonMenuItemfontNames] );

         fontMenu.addfonts] );

         fontGroup.addfonts] );

         fonts].addActionListeneritemHandler );

      }



      fonts].setSelectedtrue );

      fontMenu.addSeparator();



      String styleNames[] "Bold""Italic" };

      styleItems = new JCheckBoxMenuItemstyleNames.length ];

      StyleHandler styleHandler = new StyleHandler();



      for int i = 0; i < styleNames.length; i++ ) {

         styleItems=

            new JCheckBoxMenuItemstyleNames] );

         fontMenu.addstyleItems] );

         styleItems].addItemListenerstyleHandler );

      }



      formatMenu.addfontMenu );

      bar.addformatMenu );  // add Format menu

     

      display = new JLabel(

         "Sample Text", SwingConstants.CENTER );

      display.setForegroundcolorValues] );

      display.setFont

         new Font"TimesRoman", Font.PLAIN, 72 ) );



      getContentPane().setBackgroundColor.cyan );

      getContentPane().adddisplay, BorderLayout.CENTER );



      setSize500200 );

      show();

   }



   public static void mainString args[] )

   {

      MenuTest app = new MenuTest();



      app.addWindowListener(

         new WindowAdapter() {

            public void windowClosingWindowEvent e )

            {

               System.exit);

            }

         }

      );

   }



   class ItemHandler implements ActionListener {

      public void actionPerformedActionEvent e )

      {

         for int i = 0; i < colorItems.length; i++ )         

            if colorItems].isSelected() ) {

               display.setForegroundcolorValues] );

               break;

            }

 

         for int i = 0; i < fonts.length; i++ )

            if e.getSource() == fonts] ) {

               display.setFontnew Font

                  fonts].getText(), style, 72 ) );

               break;

            }



         repaint();   

      }

   }



   class StyleHandler implements ItemListener {

      public void itemStateChangedItemEvent e )

      {

         style = 0;



         if styleItems].isSelected() )

            style += Font.BOLD;



         if styleItems].isSelected() )

            style += Font.ITALIC;



         display.setFontnew Font

            display.getFont().getName(), style, 72 ) );



         repaint();

      }

   }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>