Menu contextuel – JPopupMenu | Java Swing

JPopupMenu est une classe du package javax.swing. Il s’agit d’une implémentation d’un menu contextuel (Popup Menu). JPopupMenu génère une petite fenêtre qui apparaît et affiche une série de choix. JPopupMenu peut être utilisé pour générer une petite fenêtre à n’importe quelle position dans un conteneur.
 
 


 

Les constructeurs de la classe JPopupMenu sont:
  • JPopupMenu(): crée un menu contextuel avec un nom vide
  • JPopupMenu(String name): crée un menu contextuel avec le titre spécifié.

 

Les méthodes couramment utilisées sont:
  • add(JMenuItem menuItem): ajoutez menuItem au menu contextuel.
  • add(String s): ajoutez une chaîne au menu contextuel.
  • getLabel(): récupère l’étiquette du menu contextuel.
  • isVisible(): retourne si le menu JPopup est visible ou non.
  • setLabel(String s): définit l’étiquette du menu contextuel.
  • setLocation(int x, int y): définit l’emplacement du menu contextuel aux coordonnées données
  • setPopupSize(int width, int height): définissez la taille du popup.
  • setVisible(boolean b): définit la visibilité du menu contextuel, visible si true est passé en argument ou vice versa.
  • show(Component c, int x, int y): affiche le menu contextuel à la position x, y dans le composant c.

 
 

Exemple: Ouvrir un menu contextuel lié au clic droit de la souris
import javax.swing.*;
import java.awt.event.*;

class MyJPopupMenu
{
 MyJPopupMenu()
 {
	 final JFrame frame = new JFrame("Exemple PopupMenu");
	 final JPopupMenu menu = new JPopupMenu("Menu"); 
		 
	 JMenuItem ouvrir = new JMenuItem("Ouvrir");
	 JMenuItem couper = new JMenuItem("Couper");
	 JMenuItem copier = new JMenuItem("Copier");
	 JMenuItem coller = new JMenuItem("Coller");
		 
	 menu.add(ouvrir); 
	 menu.add(couper); 
	 menu.add(copier);
	 menu.add(coller);
		 
	 frame.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
     //événement click droit de la souris
     if (SwingUtilities.isRightMouseButton(e) && e.getClickCount() == 1){
           menu.show(frame , e.getX(), e.getY());
     }				
    }               
	 });

	 frame.add(menu); 
	 frame.setSize(300,300);
	 frame.setLayout(null);
	 frame.setVisible(true);
 }
 public static void main(String args[])
 {
     new MyJPopupMenu();
 }
}

Sortie:


 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *