JPopupMenu

JPopupMenu es un componente Swing que se usa para mostrar un menú emergente en la aplicación. El menú emergente no es más que una pequeña ventana que aparece y muestra una serie de opciones en cualquier evento, como hacer clic en el botón.

Ejemplo

  • El menú Editar puede contener opciones como cortar, copiar y pegar.
  • El menú para una organización puede contener opciones como Inicio, contáctenos, sobre nosotros, consultas, etc.

JPopupMenu es una clase que se usa en una aplicación Swing. Aquí está la declaración:

JPopupMenu de clase pública extiende los implementos JComponent Accesible, MenuElement

Clase base JComponent para todos los componentes Swing, excepto los contenedores de nivel superior.

Constructores

JPopupMenu ()

Este constructor construye un JPopupMenu sin un invocador.

JPopupMenu (etiqueta de cadena)

Este constructor construye un JPopupMenu con un título.

Comprendamos JPopupMenu con la ayuda de un ejemplo:

Programa

package application;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.SwingConstants;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
public class JPopupMenuDemo (
public static void main(String() args) (
JFrame app = new JFrame();
JButton organization = new JButton("Organization");
app.add(organization);
app.setSize(400, 400);
app.setLayout(new GridLayout(2, 1));
app.setVisible(true);
organization.setVisible(true);
JPopupMenu menu = new JPopupMenu("Menu");
JLabel status = new JLabel();
status.setHorizontalTextPosition(SwingConstants.CENTER);
status.setVerticalTextPosition(SwingConstants.CENTER);
app.add(status);
ActionListener listener = new ActionListener() (
@Override
public void actionPerformed(ActionEvent e) (
status.setText(e.getActionCommand());
status.setVisible(true);
)
);
JMenuItem enquire = new JMenuItem("Enquire");
enquire.addActionListener(listener);
JMenuItem aboutUs = new JMenuItem("About Us");
aboutUs.addActionListener(listener);
JMenuItem home = menu.add("Home");
home.addActionListener(listener);
JMenuItem contactUs = menu.add(new AbstractAction() (
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) (
status.setText(e.getActionCommand());
status.setVisible(true);
)
));
menu.add(enquire);
menu.add(aboutUs);
menu.add(contactUs);
home.setText("Home. Index - " + menu.getComponentIndex(home));
enquire.setText("Enquire. Index - " + menu.getComponentIndex(enquire));
aboutUs.setText("About Us. Index - " + menu.getComponentIndex(aboutUs));
contactUs.setText("Contact Us. Index - " + menu.getComponentIndex(contactUs));
menu.addPopupMenuListener(new PopupMenuListener() (
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) (
status.setText("Popup menu is visible now.");
status.setVisible(true);
)
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) (
status.setText("Popup menu is invisible now.");
)
@Override
public void popupMenuCanceled(PopupMenuEvent e) (
status.setText("Popup menu is cancelled now.");
)
));
organization.addMouseListener(new MouseAdapter() (
public void mouseClicked(MouseEvent e) (
menu.show(app, e.getX(), e.getY());
)
));
)
)

Explicación

Esta es una aplicación para cualquier organización que tenga páginas básicas como inicio, consulta, sobre nosotros y contáctenos.

  • Primero, hemos creado un JFrame de tamaño 400 por 400 píxeles. JFrame es una ventana de nivel superior con título y borde.
  • Luego agregó un botón "Organización" para mostrar el menú principal de la aplicación.
  • Se crea una etiqueta para mostrar el estado de la aplicación (en qué elemento del menú se hace clic)
  • Se crea un menú emergente usando la clase JPopupMenu y se le agregan cuatro elementos de menú: Inicio, consulta, sobre nosotros y contáctenos.
  • El índice del elemento del menú se calcula y se muestra con la función "getComponentIndex".
  • Se agregó un separador al final del menú usando la función "addSeparator".
  • Se agrega un oyente para mostrar la ventana del menú al hacer clic en el botón.
  • Se agrega un oyente más para cambiar el estado cuando aparece un menú emergente y también cuando se hace clic en los elementos del menú.
  • Cuando el usuario hace clic en el botón "Organización", se abre una ventana emergente con elementos de menú.
  • Cuando se hace clic en un elemento del menú, se cambia el "estado".

Salida

  1. Esta es la aplicación:

  1. Cuando el usuario hizo clic en "Organización", se muestra un menú emergente:

  1. Cuando el usuario hizo clic en "Inicio":

  1. Cuando el usuario hizo clic en "Consultar":

  1. Cuando el usuario hizo clic en "Acerca de nosotros":

  1. Cuando el usuario hizo clic en "Contáctenos":

Métodos de JPopupMenu

Algunos de los métodos útiles de JPopupMenu:

  1. JMenuItem add (Acción a)

Este método agrega un elemento de menú al final del menú y se especifica la acción para el elemento de menú.

  1. JMenuItem add (JMenuItem menuItem)

Este método también agrega un elemento de menú al final, excepto que la acción para este elemento de menú debe especificarse en JMenuItem.

  1. JMenuItemadd (String s)

Este método crea un JMenuItem, se agrega al menú y devuelve el JMenuItem para que pueda configurarse más.

  1. void addSeparator ()

Este método agrega un espacio separador al final del menú.

  1. int getComponentIndex (Componente c)

Este método devuelve el índice del componente especificado dentro de este JPopupMenu.

  1. getDefaultLightWeightPopupEnabled () booleano estático

Este método devuelve el valor de la propiedad defaultLightWeightPopupEnabled, que por defecto es verdadero.

  1. static void setDefaultLightWeightPopupEnabled (boolean aFlag)

Este método establece el valor de la propiedad defaultLightWeightPopupEnabled.

  1. String getLabel ()

Este método devuelve la etiqueta de este menú.

  1. void setLabel (etiqueta de cadena)

Este método establece la etiqueta para este menú.

  1. Inserciones getMargin ()

Este método devuelve el margen, en píxeles, entre el borde de este menú y sus contenedores.

  1. boolean isLightWeightPopupEnabled ()

Este método devuelve la propiedad "lightWeightPopupEnabled".

  1. void setLightWeightPopupEnabled (boolean aFlag)

Este método establece la propiedad "lightWeightPopupEnabled", que por defecto es verdadera.

  1. boolean isVisible ()

Este método devuelve la visibilidad actual de este menú.

  1. void setVisible (boolean b)

Este método establece la visibilidad del menú.

  1. String protegido paramString ()

Este método devuelve una representación de cadena de este menú.

  1. anular eliminar (int pos)

Este método elimina el componente en el índice especificado de este menú.

  1. void setLocation (int x, int y)

Este método establece la ubicación de la esquina superior izquierda de este menú utilizando las coordenadas x e y.

  1. void setPopupSize (int ancho, int alto)

Este método establece el tamaño de esta ventana de menú a la altura y anchura especificadas.

  1. void setPopupSize (Dimensión d)

Este método establece el tamaño de esta ventana de menú a la dimensión especificada.

  1. PopupMenuUI getUI ()

Este método devuelve el aspecto de este menú.

  1. void setUI (PopupMenuUI ui)

Este método establece el aspecto de este menú.

  1. void updateUI ()

Este método restablece el aspecto de este menú.

  1. inserción vacía (Acción a, índice int)

Este método inserta el elemento del menú en el menú con la acción especificada en el índice especificado.

  1. inserción vacía (Componente componente, índice int)

Este método inserta el elemento de menú en el menú en el índice especificado.

  1. show nulo (Invocador de componentes, int x, int y)

Este método muestra el menú en el invocador de componentes en la posición x, y en el espacio de coordenadas.

  1. void addPopupMenuListener (PopupMenuListener l)

Este método agrega un oyente a este menú emergente con la ayuda del cual podemos verificar cuándo el menú emergente es visible, invisible y cancelado.

Artículos recomendados

Esta es una guía para JPopupMenu. Aquí discutimos el ejemplo y el constructor con el programa y la explicación de JPopupMenu. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Anotaciones Java
  2. Raíz cuadrada en Java
  3. CardLayout en Java
  4. Matriz de impresión en Java
  5. JLabel en Java
  6. Raíz cuadrada en PHP