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 :

JList récupérer les données au clic souris


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 19
    Points : 7
    Points
    7
    Par défaut JList récupérer les données au clic souris
    Donc voila j'ai une JList qui fait apparaitre mes client quand je fais une recherche dans ma base de donnée mysql, j'ai fait en sorte que je puisse cherche un client par la premier lettre de son nom, donc j'obtiens une liste de nom commencent par exemple par C.

    Maintenant ce que je voudrais c'est de pouvoir replacer les information d'une ligne sectionner au clique dans des jtextfield.

    Je vous fait un screen de mon programme pour mieux comprendre

    Pour l'instant ma methode de recherche client ce présente comme ceci:

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
        public void RechercheClient() {
     
            if (rc.jRadioButtonIdClient.isSelected()) {
                s = helper.getSessionFactory().openSession();
                s.beginTransaction();
                cl = (Client) s.get(Client.class, Integer.parseInt(rc.jTextFieldRechIdClient.getText()));
                co = (Commune) s.get(Commune.class, cl.getCommune().getCommuneId());
                s.getTransaction().commit();
                s.close();
                ListModel = new DefaultListModel();
                mg.jListClient.setModel(ListModel);
                ListModel.addElement("N° Client: " + cl.getClientId() + " "
                        + " Societé: " + cl.getClientNom() + " "
                        + " Telephone: " + cl.getClientTel() + " "
                        + " Email: " + cl.getClientEmail() + " "
                        + " Adresse: " + cl.getClientAdresse() + " "
                        + " N°: " + cl.getClientNum() + " "
                        + " Commune: " + co.getCommuneNom() + " "
                        + " Code Postal: " + co.getCommuneCp());
                mg.jTextFieldIdClient.setText(String.valueOf(cl.getClientId()));
                mg.jTextFieldNomClient.setText(cl.getClientNom());
                mg.jTextFieldTelClient.setText(cl.getClientTel());
                mg.jTextFieldEmailClient.setText(cl.getClientEmail());
                mg.jTextFieldAdresseClient.setText(cl.getClientAdresse());
                mg.jTextFieldNumClient.setText(String.valueOf(cl.getClientNum()));
                mg.jTextFieldComClient.setText(co.getCommuneNom());
                mg.jTextFieldCpClient.setText(co.getCommuneCp());
                s = helper.getSessionFactory().openSession();
                s.beginTransaction();
                s.getTransaction().commit();
                s.close();
            } else {
                s = helper.getSessionFactory().openSession();
                s.beginTransaction();
                String nom = rc.jTextFieldRechNomClient.getText();
                String SQL_QUERY = ("select client.client_id, client.client_nom, client.client_tel, client.client_email, "
                        + " client.client_adresse, client.client_num, commune.commune_nom, commune.commune_cp "
                        + " from client, commune "
                        + " where client_nom like '" + nom + "%'"
                        + " and client.commune_id = commune.commune_id");
                Iterator results = s.createSQLQuery(SQL_QUERY).list().iterator();
                ListModel = new DefaultListModel();
                mg.jListClient.setModel(ListModel);
                while (results.hasNext()) {
                    Object[] row = (Object[]) results.next();
                    ListModel.addElement("N° Client: " + row[0] + " "
                            + " Societé: " + row[1] + " "
                            + " Telephone: " + row[2] + " "
                            + " Email: " + row[3] + " "
                            + " Adresse: " + row[4] + " "
                            + " N°: " + row[5] + " "
                            + " Commune: " + row[6] + " "
                            + " Code Postal: " + row[7]);
                /*mg.jTextFieldIdClient.setText(String.valueOf(row[0]));
                mg.jTextFieldNomClient.setText(String.valueOf(row[1]));
                mg.jTextFieldTelClient.setText(String.valueOf(row[2]));
                mg.jTextFieldEmailClient.setText(String.valueOf(row[3]));
                mg.jTextFieldAdresseClient.setText(String.valueOf(row[4]));
                mg.jTextFieldNumClient.setText(String.valueOf(row[5]));
                mg.jTextFieldComClient.setText(String.valueOf(row[6]));
                mg.jTextFieldCpClient.setText(String.valueOf(row[7]));*/
                }
                s.getTransaction().commit();
                s.close();
            }
        }
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Pas compris ou était vraiment la question mais ceci d'apres toi est-censé faire quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     mg.jTextFieldIdClient.setText(String.valueOf(cl.getClientId()));
                mg.jTextFieldNomClient.setText(cl.getClientNom());
                mg.jTextFieldTelClient.setText(cl.getClientTel());
                mg.jTextFieldEmailClient.setText(cl.getClientEmail());
                mg.jTextFieldAdresseClient.setText(cl.getClientAdresse());
                mg.jTextFieldNumClient.setText(String.valueOf(cl.getClientNum()));
                mg.jTextFieldComClient.setText(co.getCommuneNom());
                mg.jTextFieldCpClient.setText(co.getCommuneCp());
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Et bien en faite si tu regardes le screen avec le code la je veux setter mes field en haut avec les informations de a Jlist donc l'id dans le fieldIdclient etc ...

    et je voudrais que les fieldtext se set quand je clique sur une ligne de la Jlist avec les bonnes informations de la ligne.

    Et donc ce que je n'arrive a faire c'est l'event du clique sur la ligne pour setter les Jtextfield

    j'espere que c'est plus compréhensible ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Je t'invite donc a lire : http://docs.oracle.com/javase/tutori...ents/list.html qui te permettra de comprendre comment "reagir" a une selection dans une JList.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    tres bien je vais lire ca ;-) si j'ai des questions je riposterai sur le même topic

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    N'hésite pas
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Je patauge j'essaye de comprendre le rapport du ListSelectionModel mais je ne comprend toujours pas, je ne vois pas comment gérer l'evenement du clique sur une row de la jList pour setter les Jtextfield :s

  8. #8
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Braksius Voir le message
    Et bien en faite si tu regardes le screen avec le code la je veux setter mes field en haut avec les informations de a Jlist donc l'id dans le fieldIdclient etc ...

    et je voudrais que les fieldtext se set quand je clique sur une ligne de la Jlist avec les bonnes informations de la ligne.

    Et donc ce que je n'arrive a faire c'est l'event du clique sur la ligne pour setter les Jtextfield

    j'espere que c'est plus compréhensible ?
    Bonjour,
    Premièrement je conseille de ne charger dans ta list que les numéros des clients au lieu de procéder comme tu as fait.

    Deuxièmemen, une autre alternative consiste à ajouter un bouton que tu appeleras par exemple "recherche" dans lequel tu mettras le code de recherche et affichage à partir de la sélection d'un numéro dans la list. Partant de là, dans actionPerfomed de ton bouton tu mets le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //tu récupères la valeur sélectionnée dans ta list
    int val=Integer.parseInt(list.getSelectedValue().toString);
    //Ensuite tu pourras aisement exécuter ta requète de sélection avec la valeur de la variable val
    Soit si tu insistes avec le click dans la list, si tu es sous NetBeans tu feras un click droit sur ta list, tu pointes events, ensuite tu choisis la méthode valueChanged dans laquelle tu mettras le code de la recherche bien après avoir récupérer la valeur sélectionnée comme je l'ai montré ci haut.
    Si la méthode valueChanged ne te plait pas, tu peux choisir mouseClicked dans Mouse à la place.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  9. #9
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Si j'ai bien saisie le problème, voici un exemple plus simple. Mais je reformule pour qu'on se comprenne bien.
    Tu as une collection d'objets. Tu souhaites afficher cette collection dans une JList. Lorsque tu clic sur une ligne de la JList, cela sélectionne un objet dans ta collection et tu veux que tous les JTextField soient mis à jour avec une donnée interne de l'objet.

    Voici le code :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    import java.awt.BorderLayout;
    import java.awt.GridLayout;
     
    import javax.swing.DefaultListModel;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
     
     
    public class ListeVersField implements ListSelectionListener
    {
    	public static void main( String arg[] )
    	{
    		new ListeVersField();
    	}
     
    	JTextField field_id, field_autre, field_1, field_2;
    	JList<MonElement> liste;
     
    	public ListeVersField()
    	{
    		JPanel panel = new JPanel( new GridLayout( 2, 4 ) );
    		field_id = new JTextField();
    		field_autre = new JTextField();
    		field_1 = new JTextField();
    		field_2 = new JTextField();
    		panel.add( new JLabel( "id" ) );
    		panel.add( field_id );
    		panel.add( new JLabel( "autre" ) );
    		panel.add( field_autre );
    		panel.add( new JLabel( "chaine 1" ) );
    		panel.add( field_1 );
    		panel.add( new JLabel( "chaine 2" ) );
    		panel.add( field_2 );
    		JFrame frame = new JFrame();
    		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    		frame.getContentPane().setLayout( new BorderLayout() );
    		frame.getContentPane().add( panel, BorderLayout.NORTH );
     
    		DefaultListModel<MonElement> modele = new DefaultListModel<MonElement>();
    		modele.addElement( new MonElement( 1, 2, "premier", "voila" ) );
    		modele.addElement( new MonElement( 2, 4, "second", "salut" ) );
    		modele.addElement( new MonElement( 3, 8, "troisième", "hello" ) );
    		modele.addElement( new MonElement( 4, 16, "quatrième", "bonjour" ) );
    		modele.addElement( new MonElement( 5, 32, "cinquième", "yep" ) );
    		liste = new JList<MonElement>( modele );
    		liste.addListSelectionListener( this );
    		frame.getContentPane().add( liste, BorderLayout.CENTER );
    		frame.pack();
    		frame.setVisible( true );
    	}
     
    	@Override
    	public void valueChanged( ListSelectionEvent event )
    	{
    		MonElement elt = liste.getSelectedValue();
    		if( elt != null )
    		{
    			field_id.setText( Integer.toString( elt.getId() ) );
    			field_autre.setText( Integer.toString( elt.getAutre_id() ) );
    			field_1.setText( elt.getChaine_1() );
    			field_2.setText( elt.getChaine_2() );
    		}
    	}
     
    	public static class MonElement
    	{
    		private int id;
    		private int autre_id;
    		private String chaine_1;
    		private String chaine_2;
     
    		public MonElement( int i1, int i2, String c1, String c2 )
    		{
    			id = i1;
    			autre_id = i2;
    			chaine_1 = c1;
    			chaine_2 = c2;
    		}
     
    		public int getId() { return id; }
    		public int getAutre_id() { return autre_id; }
    		public String getChaine_1() { return chaine_1; }
    		public String getChaine_2() { return chaine_2; }
     
    		@Override
    		public String toString()
    		{
    			return "id=" + id + ", autre=" + autre_id + ", c1=" + chaine_1 + ", c2=" + chaine_2;
    		}
    	}
    }
    Le modèle de la JList contient directement tous les objets. Le listener connait donc directement toutes les données de l'objet sélectionné.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Récupérer les données dans JList
    Par benmia dans le forum Débuter
    Réponses: 2
    Dernier message: 20/03/2015, 15h48
  2. Récupérer les données dans une JList
    Par benmia dans le forum Débuter
    Réponses: 2
    Dernier message: 17/03/2015, 14h15
  3. [VS2005] Récupérer les informations sur clic souris
    Par J.Séverin dans le forum SDK
    Réponses: 1
    Dernier message: 12/10/2011, 18h08
  4. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

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