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

2D Java Discussion :

multigraph menu et event


Sujet :

2D Java

  1. #1
    Membre du Club
    Profil pro
    Info
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Info

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 46
    Points
    46
    Par défaut multigraph menu et event
    Salut !

    J'ai un chart avec plusieurs graphiques (disons 2 pour simplifier) et clic droit m'ouvre un JPopMenu que j'ai défini.
    Ce menu, contient un JMenu "Graph" qui contient lui même 2 JMenu "plot1" et "plot2" qui contiennent chacun 2 JMenu "Color" et "Shape" où on trouve "Blue", "Red" ... et "Square", "Triangle", ...

    J'étais très content mon menu était très sympa, mais impossible de l'utiliser car en fait car lorsque je veux définir le type d'action pour un évènement donné il me manque des infos :
    quand l'utilisateur choisit Graph-->plot1-->Color-->Blue moi quand je veux le coder je sais par l'utilisation d'un eventlistener que "Blue" a été choisi (donc que c'est une couleur) mais je sais pas si c'est le "Blue" lié au "plot1" ou au "plot2" et donc au final je sais pas sur quel plot effectué le changement de couleur ...

    Sauriez vous s'il est possible pour ce que je veux faire de procéder ainsi (récupérer toute la chaîne du menu déroulé par exemple) ou sinon quelles autre(s) solution(s) verriez vous ?

    Merci !

  2. #2
    Membre du Club
    Profil pro
    Info
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Info

    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Au cas où, pour que ce soit plus clair pour tous voici le code de mon menu (résumé à l'exemple que j'ai pris dans le post ci-dessus) :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    import applet.graph.DrawGraph; //ma classe qui contruit les plots
     
    public JPopupMenu PopupMenuBuild(DrawGraph drawGraph){
       JPopupMenu myPopupMenu = new JPopupMenu();
     
       final XYPlot plot = drawGraph.getPlot();
       final XYItemRenderer rend = plot.getRenderer();
     
       //définir les actions ...
       ActionListener menuListener = new ActionListener() {
          public void actionPerformed(ActionEvent e) {
             if (e.getActionCommand().equals("Blue")) {
                col = Color.BLUE;
                rend.setSeriesPaint(0,col);
             }
             if (e.getActionCommand().equals("Black")) {
                col = Color.BLACK;
                rend.setSeriesPaint(0,col);
             }
          }
       };
     
       //création du menu
       sousMenuGraph = new JMenu("Graph");
     
       ArrayList<String> ssMenunameColor = new ArrayList<String>();
       ssMenunameColor.add("Black");
       ssMenunameColor.add("Blue");
     
       //pour ajouter autant de sous-menu qu'il y a de plots (ici 2)
       //Graph a donc 2 sous-menu "plot1" et "plot2" qui ont les mêmes arborescences
       for(int i=0; i<plot.getRangeAxisCount(); i++){
          sousMenuGraph.add(menu("plot1"+i, ssMenunameColor, menuListener));
       }
     
       myPopupMenu.add(sousMenuGraph);
       return myPopupMenu;
    }
     
    //méthode qui crée un menu "Menuname" avec ses sous-menus
    //il est ensuite ajouté (comme sous-menu lui-même) au menu "Graph"
    private JMenu menu(String Menuname, ArrayList<String> ssMenuname, ActionListener menuListener){
        	JMenu Menu = new JMenu(Menuname);
        	for(int i=0; i<ssMenuname.size(); i++){
        		JMenuItem ssMenu = new JMenuItem(ssMenuname.get(i));
        		ssMenu.addActionListener(menuListener);
        		Menu.add(ssMenu); 
        	}
    	return Menu;
    }
    Ceci me crée donc un menu représenté ici sous forme schématique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Graph _____ Plot1 _____ Color _____ Black
         |                       |_____ Blue
         |
         |
         |____ Plot2 _____ Color _____ Black
                                |_____ Blue
    Donc à ce stade je n'arrive pas à distinguer le "Blue" du "Plot1 à l'autre "Blue" du "Plot2" avec un simple getActionCommand().
    Verriez vous d'autres solution pour y arriver ? soit en gardant la structure ed mon JPopupMenu soit en la modifiant.

    A titre d'indication si je mets les print suivants dans void actionPerformed(ActionEvent e)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.out.println("Popup menu item [" + e.getActionCommand() + "] a été pressé.");
    System.out.println("Popup menu ID [" + e.getID() + "] pressé.");
    System.out.println("Popup menu Modifier [" + e.getModifiers() + "] pressé.");
    System.out.println("Popup menu ParamString [" + e.paramString() + "] pressé.");
    j'obtiens ceci quelquesoit l'item "Black" choisi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Popup menu item [Black] a été pressé.
    Popup menu ID [1001] pressé.
    Popup menu Modifier [16] pressé.
    Popup menu ParamString [ACTION_PERFORMED,cmd=Black,when=1288077952087,modifiers=Button1] pressé.
    ce qui les rend indissociables.

    En espérant que ce soit plus clair ...

Discussions similaires

  1. Menu déroulant et event
    Par skwi6 dans le forum jQuery
    Réponses: 2
    Dernier message: 21/03/2011, 11h36
  2. intercepter l'event .click d'un context menu item
    Par zebrette dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/01/2011, 17h46
  3. Menu dynamique - event handler
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/11/2009, 17h28
  4. Gestion des event sur un menu
    Par Antoine_935 dans le forum wxPython
    Réponses: 5
    Dernier message: 10/09/2009, 12h01
  5. Menu - Events
    Par Dam254 dans le forum MFC
    Réponses: 3
    Dernier message: 14/11/2008, 11h55

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