2011-07-14 4 views
1
im trying to get right click menus to come up when they control right click in a JPanel. I researched a bit and was able to develop the code, but for some reason the isPopUpTrigger returns false, any ideas? Thanks! 

else if(arg0.getButton() == MouseEvent.BUTTON3) 
      { 
       if(controlIsPressed){ 
        class PopUpDemo extends JPopupMenu { 
         JMenuItem anItem; 
         public PopUpDemo(){ 
          anItem = new JMenuItem("Click Me!"); 
          add(anItem); 
         } 
        } 
        if(arg0.isPopupTrigger()){ 
         PopUpDemo menu = new PopUpDemo(); 
         menu.show(arg0.getComponent(), arg0.getX(), arg0.getY()); 
        } 
       } 

Répondre

1

Quelle méthode dans MouseListener appelez-vous cela? Selon le système d'exploitation, il peut être déclenché par mousePressed ou mouseReleased, vous devez donc appeler ceci à partir de ces deux méthodes.

+0

Eh bien, je l'avais seulement en souris pressée, mais maintenant je rencontre un autre problème, Im essayant actuellement de faire un éditeur de carte pour une autre application, et c'est en fait une application exécutable à 30 FPS, donc mon Le popup surgit seulement quelques secondes puis clignote lentement, n'importe quelle idée comment je peux le faire fonctionner dans un JPanel en cours d'exécution. – Colton

+0

Sans voir plus de code, c'est difficile à dire. Assurez-vous que vous exécutez toutes les applications liées à l'interface graphique dans le thread d'envoi d'événement. Ne pas le faire est une cause fréquente de scintillement. Si vous avez besoin de plus d'informations, vous devriez poster une nouvelle question avec quelques détails/code. –