IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

menu contextuel sur click droit


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 22
    Points
    22
    Par défaut menu contextuel sur click droit
    bonjour,

    je cherche à faire un menu contextuel à partir du click droit de la souris, dans le but d'insérer ou de supprimer une ligne dans un JTable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if (e.getButton()== MouseEvent.BUTTON3) {
    	System.out.println("insertion et suppression");
    	JMenu contextMenu = new JMenu() ;
     
    	JMenuItem insert = new JMenuItem("Insert Phase") ;
    	JMenuItem delete = new JMenuItem("Delete Phase") ;
    	contextMenu.add(insert) ;
    	contextMenu.add(delete) ;
    	contextMenu.setMenuLocation(e.getXOnScreen(), e.getYOnScreen()) ;
                 contextMenu.setEnabled(true) ;
    	contextMenu.setVisible(true) ;
    	contextMenu.setPopupMenuVisible(true) ;
    	maJTable.add(contextMenu) ;
    }

    evidemment ce code n'affiche rien.
    en fait je cherche comment procéder, quels outils utiliser,...

    merci pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Il faut utiliser un JPopupMenu, regarde la doc sur cette classe

  3. #3
    Membre du Club Avatar de puybaret
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 61
    Points : 65
    Points
    65
    Par défaut
    Appelle setComponentPopupMenu sur ton tableau en lui passant une instance de JPopupMenu

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    parfait
    j ai juste preferé utiliser :
    myPopup.show(myComponant, e.getX(), e.getY()) ;
    car autrement à la premiere execution, il me placait ma popup en haut à gauche

    merci à vous

  5. #5
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Si tu veux toujours rester "portable" et conserver le comportement par défaut pour tous les systèmes d'exploitation, il ne faut pas procéder ainsi...

    En effet, pour Windows, un popup s'affiche sur un clic droit... mais pas sur Mac, qui ne possède pas de clic droit !!!

    Donc si tu veux que les utilisateurs Mac puissent eux aussi utiliser ton programme, il te faut écrire cette méthode ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void maybeShowPopup(MouseEvent e) {
            if (e.isPopupTrigger()) {
                System.out.println("insertion et suppression");
                JMenu contextMenu = new JMenu() ;
                JMenuItem insert = new JMenuItem("Insert Phase") ;
                JMenuItem delete = new JMenuItem("Delete Phase") ; 
                contextMenu.add(insert) ;
                contextMenu.add(delete) ;
                contextMenu.setMenuLocation(e.getXOnScreen(),e.getYOnScreen()); 
                contextMenu.setEnabled(true) ;
                contextMenu.setVisible(true) ; 
                contextMenu.setPopupMenuVisible(true) ;
                maJTable.add(contextMenu) ;
             }
    }
    ... et appeler cette méthode sur les évènements souris mousePressed(pour Mac, mais pour lequel isPopupTrigger est faux sous windows) et mouseReleased (pour windows).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public void mousePressed(MouseEvent e) {
            maybeShowPopup(e);
        }
     
        public void mouseReleased(MouseEvent e) {
            maybeShowPopup(e);
        }
    Source :
    How to use Menus

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 22
    Points
    22
    Par défaut
    il faut penser aux gens qui n'ont pas de mageur
    merci

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 107
    Points : 59
    Points
    59
    Par défaut Pb avec eclipse
    bonjour
    j'essaye de faire le meme truc avec des popup mais sous eclipse c impossible
    il ne reconnait pas le getYOnScreen() ainsi que getXOnScreen()

    merci

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 107
    Points : 59
    Points
    59
    Par défaut reponse a moi meme
    c bon avec ca ça marche
    car j'ai une jliste
    pm.show(jList1, e.getX(), e.getY());


    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/01/2014, 09h25
  2. [XL-97] Ne pas afficher menu contextuel sur clic droit si utilisé pour Macro
    Par jehhej dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2011, 11h52
  3. Afficher un menu contextuelle sur le click droit d'une image
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2006, 12h19
  4. [VB6] menu contextuel sur clique droit souris
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/07/2003, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo