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 :

[JPopupMenu] position fausse


Sujet :

AWT/Swing Java

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut [JPopupMenu] position fausse
    Bonjour

    Voici mon problème. Je veux pouvoir faire défiler un JPopupMenu sur un élément d'un graphe. Ainsi, voici comment je l'appelle :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public void mousePressed(PInputEvent aEvent)
     
    				{
     
    					if(aEvent.isLeftMouseButton()){
     
    						ppath.setPaint(Color.orange);
     
    						aEvent.setHandled(true);
     
    					}
     
    					else if(aEvent.isRightMouseButton()){
     
    						System.out.println("X = "+aEvent.getPosition().getX()+"\tY = "+aEvent.getPosition().getY());
     
    						JPopupMenu pop = new PopupNode(aEvent.getPosition().getX(), aEvent.getPosition().getY());
     
    						pop.show(Namek.Canvas, (int)aEvent.getPosition().getX(), (int)aEvent.getPosition().getY());
     
    					}
     
    				}
    Et voici la classe de ce popup:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JFrame;
    import javax.swing.JPopupMenu;
    import javax.swing.JMenuItem;
     
    public class PopupNode extends JPopupMenu {
     
    	private JMenuItem jMenuItem;
    	private JMenuItem jMenuItem1;
     
    	public PopupNode(double x, double y){
    		jMenuItem = new JMenuItem("Nouvelle protéine");
    		this.add(jMenuItem);
    		jMenuItem1 = new JMenuItem("Couleur du noeud");
    		this.add(jMenuItem1);
    		jMenuItem1.addActionListener(new ActionListener() {
     
    	         public void actionPerformed(ActionEvent evt)
    	         {
    	        	 JFrame ext = new ColorChooser(2);
    	    		 ext.setVisible(true);
    	         }
     
    	     });
     
    	}
     
    }
    Seulement, j'observe que le JPopupMenu ne se place pas comme je le voudrais et cela devient pire quand je redimensionne ma fenêtre. Donc, comment améliorer son positionnement ?
    Merci d'avance de vos réponses.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    C'est bon, j'ai trouvé !
    Il fallait que j'écrive :
    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(aEvent.isRightMouseButton()){
     
    						java.awt.geom.Point2D p = aEvent.getCanvasPosition();
     
    						aEvent.getPath().canvasToLocal(p, pcam);
     
    						System.out.println(""+Namek.Canvas.getWidth()+"\t"+Namek.Canvas.getHeight());
     
    						JPopupMenu pop = new PopupNode();
     
    						pop.show(Namek.Canvas, (int)p.getX(), (int)p.getY());
     
    					}
    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. [WD17] position d'une ligne dans une table est faussée par les tris
    Par droliprane dans le forum WinDev
    Réponses: 18
    Dernier message: 19/09/2012, 17h15
  2. Méthode fausse position
    Par omécéLinux dans le forum Scilab
    Réponses: 3
    Dernier message: 31/05/2012, 22h37
  3. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09
  4. Réponses: 2
    Dernier message: 17/05/2002, 20h37
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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