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

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


import javax.swing.*;

import java.awt.event.*;

import java.awt.*;



public class PopupTest extends JFrame {



   private JRadioButtonMenuItem items[];

   private Color colorValues[] 

      Color.blue, Color.yellow, Color.red };



   public PopupTest()

   {

      super"Using JPopupMenus" );



      final JPopupMenu popupMenu = new JPopupMenu();

      ItemHandler handler = new ItemHandler();

      String colors[] "Blue""Yellow""Red" };

      ButtonGroup colorGroup = new ButtonGroup();

      items = new JRadioButtonMenuItem];



      // construct each menu item and add to popup menu; also

      // enable event handling for each menu item

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

         itemsnew JRadioButtonMenuItemcolors] );

         popupMenu.additems] );

         colorGroup.additems] );

         items].addActionListenerhandler );                

      }



      getContentPane().setBackgroundColor.white );



      // define a MouseListener for the window that displays

      // a JPopupMenu when the popup trigger event occurs

      addMouseListener(

         new MouseAdapter() {

            public void mousePressedMouseEvent e )

               checkForTriggerEvent)



            public void mouseReleasedMouseEvent e )

               checkForTriggerEvent)



            private void checkForTriggerEventMouseEvent e )

            {

               if e.isPopupTrigger() ) 

                  popupMenu.showe.getComponent(),

                                  e.getX(), e.getY() );               

            }

         }

      );    



      setSize300200 );

      show();

   }



   public static void mainString args[] )

   {

      PopupTest app = new PopupTest();



      app.addWindowListener(

         new WindowAdapter() {

            public void windowClosingWindowEvent e )

            {

               System.exit);

            }

         }

      );

   }



   private class ItemHandler implements ActionListener {

      public void actionPerformedActionEvent e )

      {

         // determine which menu item was selected

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

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

               getContentPane().setBackground(

                  colorValues] );

               repaint();

               return;

            }

      }

   }

}

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

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

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