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

Composants Java Discussion :

Passage d'arguments d'un jtable via popup via nouvelle fenetre


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut Passage d'arguments d'un jtable via popup via nouvelle fenetre
    Bonjour à tous,

    J'ai une jtable dans un menu déroulant qui contient une liste de produit.

    L'objectif est le suivant, effectuer un clic droit sur un produit de la jtable puis ouvrir un popup avec un menu éditer, cliquer sur éditer, puis ouvrir une nouvelle fenêtre qui contient de plus amples informations sur le produit.

    Ce qui marche :

    Lorsque j'effectue un click droit sur une ligne de la liste, les actions suivantes sont effectuées :
    -récupération de l'identifiant de la ligne dans un string (dans cet exemple le chiffre 7)
    -ouverture d'un popup avec un bouton "editer produit". (cf img ci-dessous)





    Jusque là tout va bien. Mais voila, lorsque je clique sur "éditer produit" j'aimerais que le chiffre 7 soit récupéré et envoyé dans une variable temporaire.Je récupererais le variable puis j'irai chercher de plus amples informations avec la variable puis j'ouvrirai une nouvelle fenêtre avec des details sur mon produit.

    Mon problème est donc le suivant : comment faire passer une variable depuis le clic jusqu'a la nouvelle fentre SANS UTILISER une variable globale ....

    Le code :

    Sur clic droit de la jtable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        if (evt.getButton() == MouseEvent.BUTTON3) {
            //  System.out.println("Click droit");
            //On récupere l'emplacement du pointeur
            Point p = evt.getPoint();
            //En fonction de la position du pointeur on recupere la ligne
            jTableListeProduit.rowAtPoint(p);
            int row =     jTableListeProduit.rowAtPoint(p);
            //On recupere l'identifiant du produit
            int identifiant= (Integer) jTableListeProduit.getValueAt(row,0);
            System.out.println("la valeur est "+String.valueOf(identifiant));
            //On ouvre le popup
            jPopupMenuEditerCreerProduit.show(evt.getComponent(), evt.getX(), evt.getY());
    Sur clic sur le menu éditer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private void jMenuItemEditerProduitActionPerformed(java.awt.event.ActionEvent evt) {                                                       
     
        //recup de l'identifiant mais comment ??
     
        //Creation d'une nouvellel fenetre a
        infoproduit i = new infoproduit(int identifiantProduit);

    Probleme comment faire le lien entre mon menu et mon clic sur la jtable ???


    merci par avance



    Je pourrais ensuite consulter cette variable et retrouver mon produit.

  2. #2
    Membre confirmé
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Points : 575
    Points
    575
    Par défaut
    je ne sais pas si cela peu t'aider mais :

    Attention code perso, il n'est pas fait pour être partagé.

    Code pour passer des paramètres
    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
    String code=rs.getString("c_code");
    String opt1=rs.getString("c_opt1");
    JMenuItem jmi =new JMenuItem(rs.getString("c_menu"));
    jmi.putClientProperty("Aide",rs.getString("c_aide"));
    jmi.putClientProperty("Option",rs.getString("c_menu"));
    jmi.putClientProperty("c_opt2",rs.getString("c_opt2"));
    jmi.putClientProperty("c_opt3",rs.getString("c_opt3"));
    jmi.setMnemonic(rs.getString("c_racc").charAt(0));
    jc.add(jmi );
    if (opt1!=null){
    		jmi.setActionCommand(rs.getString("c_opt1"));
    		} else {
    		jmi.setName(rs.getString("c_menu"));
    		jmi.setActionCommand("");
    		}

    Code pour récupérer les paramètres:
    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
    	public void actionPerformed(ActionEvent arg0) {
    		String option=arg0.getActionCommand();
    		if (option.length()>0){
    			gp.clearMainFrame(false);
    			gpsys.m_option=gp.m_option=option;
    			gpsys.m_optionText=gp.m_optionText=((JMenuItem) arg0.getSource()).getText();
    			gpsys.m_c_opt2=gp.m_c_opt2=(String) ((JMenuItem) arg0.getSource()).getClientProperty("c_opt2");
    			gpsys.m_c_opt3=gp.m_c_opt3=(String) ((JMenuItem) arg0.getSource()).getClientProperty("c_opt3");
    			jp=new DbFichier(sql);{
    				gpsys.f_mjp=gp.f_mjp=jp;
    			}
     
    			gp.f_mf.requestFocus();
    			gp.f_mjpc.add(jp);
    		} else { 
    			JOptionPane.showMessageDialog(null, "["+((JMenuItem) arg0.getSource()).getClientProperty("Option")+"]"
    					+ "\n\n Option pas encore installée"
    					+ "\n\n     Merci de patienter"
    					,"Lanceur de menu", JOptionPane.INFORMATION_MESSAGE);
    			gp.clearMainFrame(true);
    		}
    	}

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut
    Salut,

    J'ai testé ta technique, c'est tout simplement excellent.
    Toutefois, soucieux d'utiliser les "best practices" , je me demandais si c'est la solution qu'utilise les professionnels pour passer les paremetres de composants en composants ?

    Qu'est que tu en penses ?

    Dans tous les cas, chapeau bas, c'est énorme je vais enfin pouvoir avancer sans utiliser ces maudits variables globales !

    Merci encore pour ta contribution.

  4. #4
    Membre confirmé
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Points : 575
    Points
    575
    Par défaut
    je n'ai pas une approche académique de la chose.

    Faut demander aux puristes.
    En java il y a tellement de façons de faire la même chose, de multiple écoles et de nombreux frameworks.

    Je fais mes trucs si cela me plait, je garde sinon je refait.

    j'essaye de trouver mon compromis réutilisabilité VS maintenance.

Discussions similaires

  1. Passage d'argument popup créees dynamiquement
    Par Tcharl dans le forum JSF
    Réponses: 3
    Dernier message: 04/01/2009, 14h08
  2. passage d'arguments via js.
    Par Empty_body dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/08/2007, 23h20
  3. Réponses: 4
    Dernier message: 26/04/2006, 21h10
  4. [web] passage d'arguments à un CGI
    Par ma2th dans le forum Web
    Réponses: 4
    Dernier message: 20/08/2004, 12h18
  5. passage d'argument à la procédure main ()
    Par Zazeglu dans le forum C
    Réponses: 5
    Dernier message: 01/09/2003, 19h59

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