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 :

Récupérer la sélection JListe dans un TexField appartenant à une autre classe


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut Récupérer la sélection JListe dans un TexField appartenant à une autre classe
    bonsoir, je viens de développer une application en java, et ça fait des jour que je rencontre un problème
    j’utilise un JListe pour récupérer les contenue d'une requête sql select, jusqu’à ici il n' y a pas de problème et je veux maintenant que lorsque je sélectionne une ligne de le liste il m'affiche dans un textfield appartenant dans une autre classe le contenu de cette ligne
    voila la méthode qui retourne le contenu d'une ligne sélectionné dans une liste



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public String getListe()
    	{ 		
     
     
    		String texte=list_1.getSelectedItem();
    		return texte;
    	}
    et dans le deuxième classe je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Maclasse fr=new Maclasse();
    System.out.println("mon message est: "+fr.getListe());
    textField.setText(fr.getListe());
    le problème qui n'y pas des erreurs mais toujours le texfield est vide!!!
    et dans la console il m'affiche:" mon message est: null"

    merci pour vous réponses

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut
    mmh, il y a des trucs bizarres dans ton code.
    Si list_1 est une JList, alors la méthode pour récupérer un item de la liste est getSelectedValue() et non pas getSelectedItem() (qui n'existe pas pour cette classe).

    Et si tu as une valeur null, c'est que tu n'as pas sélectionné d'élément dans ta JList (comme le dit la Javadoc).

  3. #3
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    Citation Envoyé par M4veR1K Voir le message
    mmh, il y a des trucs bizarres dans ton code.
    Si list_1 est une JList, alors la méthode pour récupérer un item de la liste est getSelectedValue() et non pas getSelectedItem() (qui n'existe pas pour cette classe).

    Et si tu as une valeur null, c'est que tu n'as pas sélectionné d'élément dans ta JList (comme le dit la Javadoc).
    bonjour, j'ai essayé avec getSelectedValue() mais il ne l'accepte pas elle est marqué comme erreur!!!!!!!!!, en faite list_1 c'est une Liste et non JListe
    par contre j'ai réussis a récupérer la sélection dans la liste avec getSelectedItem() , j'ai déjà essayé la fonction de récupération dans la même classe et c'est bon ça marche et je récupère a chaque fois le texte sélectionné mais lorsque je fais appel a cette méthode dans le deuxième classe toujours le valeur est null!!!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut
    Alors il va falloir que tu montres un peu plus de code. Car je ne sais pas comment t'aider avec le peu que j'ai actuellement.

    Si tu fais une application avec Swing, je te conseille de l'utiliser un maximum à la place de AWT. Globalement, si tu pouvais utiliser JList à la place de List, ça ne pourrait être que bénéfique (même si ce n'est surement pas ça qui va résoudre ton soucis). (La plupart des composants Swing commence par J)

  5. #5
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    j'ai essayé de travailler avec JListe mais le problème que lorsque je place JListe sur le panel il sera placé mais je ne peux pas le voir même lorsque je compile et lorsque je lui ajoute le SCRollPane il est marqué comme erreur par contre pour le Liste je n'ai aucun problème
    voila un extrait du mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private List list_1 =new List();
    list_1.setBounds(45, 56, 213, 292);
    		panel_2.add(list_1);
    		list_1.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
     
    				System.out.println("l'element selectionné est:" +list_1.getSelectedItem());
    			}
    		});
    j'ai placé un écouteur ici qui renvoi a chaque fois l’élément sélectionner
    les éléments de la liste sont la résultat d'une requête sql SELECT, voila la méthode que je l'ai définit :
    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
    public void affiche()
    	   {
    			try
    			{
    				Class.forName("com.mysql.jdbc.Driver");  	
    				 con=DriverManager.getConnection("jdbc:mysql://localhost/laboratoire","root",""); 
    			  Statement stm=con.createStatement();
    			  ResultSet res=stm.executeQuery("select *from client ;");
     
    			while (res.next())
    			      {
    			      	list_1.add(res.getString(2));		
    			      }	
     
    		         con.close();
     
    			  }catch (Exception el)
    			     {
    			         System.out.println("ERROR :"+el.getMessage());
    			     }
    		}
    jusqu'à ici il n' y a pas des problèmes , j'ai récupéré les données dans ma liste et je veut maintenant afficher l’élément sélectionné dans la liste dans un textfield appartenant dans la 2 classe,j'ai définit alors la méthode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public String getListe()
    	{ 	
     
    		String texte=list_1.getSelectedItem() ;
    		return texte;
    	}

    et dans la deuxième classe j'ai fais un appel à la méthode comme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Fornisseur f=new Fornisseur();
    String a=	f.getListe();
    textField.setText(a);
    remarque fournisseur c'est ma prémiére classe ou j'ai définit ma méthode getListe

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Par défaut
    Franchement, avec le code que tu as donné, je ne vois pas ce qui peut causer ton problème hors le fait qu'au moment où tu appelles f.getListe(), il n'y a aucun item sélectionné dans ta liste.
    Citation Envoyé par javadoc
    getSelectedItem

    public String getSelectedItem()
    Get the selected item on this scrolling list.
    Returns:
    the selected item on the list, or null if no item is selected.
    JList marcherait mieux dans un JScrollPane que dans un ScrollPane. Qui ferait mieux de se trouver dans JPanel et non Panel, qui lui même serait bien dans une JFrame et non pas Frame (etc.).

    Voilà du code pour afficher une JList dans un JPanel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JPanel pnlList = new JPanel(new BorderLayout());
    JList list = new JList(); // avec jre7, ce serait plutôt JList<String> list = new JList<>();
    list.setBorder(BorderFactory.createLineBorder(Color.BLACK));
     
    pnlList.add(list);
    Pour la remplir tu ferais alors quelque chose dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ArrayList<String> lstData = new ArrayList<String>();
    while (res.next())
    {
    	lstData.add(res.getString(2));		
    }
     
    list.setListData(lstData.toArray(new String[0]));

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2014, 15h21
  2. Instancier une classe dans un constructeur d'une autre classe ?
    Par ctobini dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/12/2012, 11h11
  3. Recupérer une variable appartenant à une autre "class"
    Par Super_babar dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 15/07/2008, 14h26
  4. Réponses: 6
    Dernier message: 31/05/2007, 18h10
  5. Réponses: 1
    Dernier message: 05/05/2006, 14h37

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