JPopupMenu

JPopupMenu est un composant Swing utilisé pour afficher un menu contextuel dans l'application. Le menu contextuel n'est rien d'autre qu'une petite fenêtre qui apparaît et affiche une série de choix sur n'importe quel événement comme un clic sur un bouton.

Exemple

  • Le menu Edition peut contenir des options telles que couper, copier et coller.
  • Le menu d'une organisation peut contenir des options comme Accueil, contactez-nous, à propos de nous, renseignez-vous, etc.

JPopupMenu est une classe utilisée dans une application Swing. Voici la déclaration:

public class JPopupMenu étend JComponent implémente Accessible, MenuElement

Classe de base JComponent pour tous les composants Swing, à l'exception des conteneurs de niveau supérieur.

Constructeurs

JPopupMenu ()

Ce constructeur construit un JPopupMenu sans invocateur.

JPopupMenu (étiquette de chaîne)

Ce constructeur construit un JPopupMenu avec un titre.

Comprenons JPopupMenu à l'aide d'un exemple:

Programme

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());
)
));
)
)

Explication

Ceci est une application pour toute organisation ayant des pages de base comme la maison, renseignez-vous sur nous et contactez-nous.

  • Tout d'abord, nous avons créé un JFrame de taille 400 par 400 pixels. JFrame est une fenêtre de niveau supérieur avec titre et bordure.
  • Ajout d'un bouton «Organisation» pour afficher le menu principal de l'application.
  • Une étiquette est créée pour montrer l'état de l'application (sur quel élément du menu est cliqué)
  • Un menu contextuel est créé à l'aide de la classe JPopupMenu et y a ajouté quatre éléments de menu - Accueil, renseignez-vous sur nous et contactez-nous.
  • L'index de l'élément de menu est déterminé et affiché à l'aide de la fonction «getComponentIndex».
  • Ajout d'un séparateur à la fin du menu en utilisant la fonction "addSeparator".
  • Un écouteur est ajouté pour afficher la fenêtre de menu au clic du bouton.
  • Un écouteur supplémentaire est ajouté pour modifier l'état lorsqu'un menu apparaît et également lorsque vous cliquez sur des éléments de menu.
  • Lorsque l'utilisateur clique sur le bouton «Organisation», une fenêtre contextuelle s'ouvre avec des éléments de menu.
  • Lorsqu'un élément de menu est cliqué, le «statut» est modifié.

Production

  1. Voici l'application:

  1. Lorsque l'utilisateur clique sur «Organisation», un menu contextuel s'affiche:

  1. Lorsque l'utilisateur a cliqué sur «Accueil»:

  1. Lorsque l'utilisateur a cliqué sur «Renseignez-vous»:

  1. Lorsque l'utilisateur a cliqué sur «À propos de nous»:

  1. Lorsque l'utilisateur a cliqué sur «Contactez-nous»:

Méthodes de JPopupMenu

Certaines des méthodes JPopupMenu utiles:

  1. Ajout de JMenuItem (Action a)

Cette méthode ajoute un élément de menu à la fin du menu et l'action pour l'élément de menu est spécifiée.

  1. Ajout de JMenuItem (JMenuItem menuItem)

Cette méthode ajoute également un élément de menu à la fin, sauf que l'action pour cet élément de menu doit être spécifiée dans JMenuItem.

  1. JMenuItemadd (chaîne s)

Cette méthode crée un JMenuItem, ajoute au menu et renvoie le JMenuItem afin qu'il puisse être configuré davantage.

  1. void addSeparator ()

Cette méthode ajoute un espace séparateur à la fin du menu.

  1. int getComponentIndex (composant c)

Cette méthode renvoie l'index du composant spécifié dans ce JPopupMenu.

  1. booléen statique getDefaultLightWeightPopupEnabled ()

Cette méthode renvoie la valeur de la propriété defaultLightWeightPopupEnabled, qui par défaut est vraie.

  1. vide statique setDefaultLightWeightPopupEnabled (boolean aFlag)

Cette méthode définit la valeur de la propriété defaultLightWeightPopupEnabled.

  1. String getLabel ()

Cette méthode renvoie l'étiquette de ce menu.

  1. void setLabel (étiquette de chaîne)

Cette méthode définit le libellé de ce menu.

  1. Encarts getMargin ()

Cette méthode renvoie la marge, en pixels, entre la bordure de ce menu et ses conteneurs.

  1. booléen isLightWeightPopupEnabled ()

Cette méthode renvoie la propriété «lightWeightPopupEnabled».

  1. void setLightWeightPopupEnabled (boolean aFlag)

Cette méthode définit la propriété «lightWeightPopupEnabled», qui par défaut est vraie.

  1. booléen isVisible ()

Cette méthode renvoie la visibilité actuelle de ce menu.

  1. void setVisible (boolean b)

Cette méthode définit la visibilité du menu.

  1. paramString String protégé ()

Cette méthode renvoie une représentation sous forme de chaîne de ce menu.

  1. void remove (int pos)

Cette méthode supprime le composant à l'index spécifié de ce menu.

  1. void setLocation (int x, int y)

Cette méthode définit l'emplacement du coin supérieur gauche de ce menu à l'aide des coordonnées x et y.

  1. void setPopupSize (int largeur, int hauteur)

Cette méthode définit la taille de cette fenêtre de menu à la hauteur et à la largeur spécifiées.

  1. void setPopupSize (Dimension d)

Cette méthode définit la taille de cette fenêtre de menu à la dimension spécifiée.

  1. PopupMenuUI getUI ()

Cette méthode renvoie l'aspect et la convivialité de ce menu.

  1. void setUI (PopupMenuUI ui)

Cette méthode définit l'apparence de ce menu.

  1. void updateUI ()

Cette méthode réinitialise l'apparence de ce menu.

  1. void insert (Action a, int index)

Cette méthode insère l'élément de menu dans le menu avec l'action spécifiée à l'index spécifié.

  1. insert vide (composant, index int)

Cette méthode insère l'élément de menu dans le menu à l'index spécifié.

  1. void show (Composant invocateur, int x, int y)

Cette méthode affiche le menu dans le composant invocateur à la position x, y dans l'espace de coordonnées.

  1. void addPopupMenuListener (PopupMenuListener l)

Cette méthode ajoute un écouteur à ce menu contextuel à l'aide duquel, nous pouvons vérifier quand le menu contextuel est visible, invisible et annulé.

Articles recommandés

Ceci est un guide de JPopupMenu. Nous discutons ici de l'exemple et du constructeur avec le programme et l'explication de JPopupMenu. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Annotations Java
  2. Racine carrée en Java
  3. CardLayout en Java
  4. Tableau d'impression en Java
  5. JLabel en Java
  6. Racine carrée en PHP