Programmer une fonction recherche avec une Ar

Fermé
mecton - 5 déc. 2009 à 18:22
laurie071298 Messages postés 205 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 5 octobre 2011 - 5 déc. 2009 à 18:25
Bonjour à tous,

Je suis en train de programmer une fonction recherche et je rencontre quelques problèmes. En fait j'ai créé un objet appelé produit qui est constitué de plusieurs paramètres.
Voici le code correspondant :
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;


public class fonction_recherche extends JFrame

{	
	private JPanel panneau = new JPanel();
	
	private produit Cuteur=new produit("Cuteur",23,"fixage","ZX23","1");
	private produit Vis=new produit("Vis",23,"fixage","ZX23","1");
	
	private DefaultListModel dlm = new DefaultListModel();
	
	private JList liste_resultat = new JList(dlm);
	private JButton search = new JButton("search");
	private JTextField textF=new JTextField("...",10);
	private ArrayList<produit> stock = new ArrayList<produit>();

	
	public fonction_recherche()
	{
	    super("Ebauche de programme");
	    setBounds(100, 200, 800, 150);
	    setDefaultCloseOperation(EXIT_ON_CLOSE);
	    panneau.add(textF);
	    panneau.add(search);
	    panneau.add(liste_resultat);
	    setContentPane(panneau);
	    setVisible(true);
	    panneau.setBackground(Color.black);
	    
	    stock.add(Cuteur);
	    stock.add(Vis);
	      
	    liste_resultat.setLayoutOrientation(JList.HORIZONTAL_WRAP);
	    liste_resultat.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
	    
	    
	    search.addActionListener(new ActionListener()
    	{
    	public void actionPerformed(ActionEvent evenement)
    		{ 
    		String texte_entre=textF.getText();
    		for(produit p : stock)
    			{
    			if(texte_entre.equals(p.getNom()))
    				{
    				dlm.addElement(p);
    				}    	           
    			}
    		liste_resultat = new JList(dlm);
			panneau.repaint();		
    		}		  		  		
    	});    
	}	
}


La classe produit :
public class produit
{
  private String nom;
  private int qte;
  private String ref;
  private String categorie;
  private String zone;

  public produit(String x,int a,String b,String c,String d)
  {
    nom=x; qte=a; categorie=b; ref=c; zone=d;
  }

  
  public String getNom()
  {
	  return nom;
  }
  public int getQte()
  {
	  return qte;
  }
  public String getRef()
  {
	  return ref;
  }
  public String getCat()
  {
	  return categorie;
  }
  public String getZone()
  {
	  return zone;
  }
}


La classe d'éxécution :
public class testfonction_recherche
{
	public static void main(String[] args) 
	{	
	fonction_recherche a = new fonction_recherche();
	}
}


Le but de mon programme principal c'est de faire une recherche dans une ArrayList qui contient une liste de ce genre de produits à partir d'une comparaison chaine de caractère entrée dans un JTextField. Et ce pour pouvoir ensuite copier les lignes de l'ArrayList correspondant aux résultats de la recherche dans une JList.

Le problème c'est qu'il affiche bien les objets trouvés lors de la recherche mais avec un code plutôt bizarre (un truc du genre : produit@16f8cd0) au lieu de m'afficher les paramètres de mon objet comme je le voudrais (c'est à dire : le nom, la catégorie, la zone, la quantité, etc).
Sauriez vous de quoi cela peut venir ? Merci d'avance

1 réponse

laurie071298 Messages postés 205 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 5 octobre 2011 49
5 déc. 2009 à 18:25
Je n'ai pas pris le temps de lire ton code en détail ... mais au vu de l'erreur il me semble que tu lui demande juste d'afficher l'objet et il t'en donne sa référence ... créer une fonction toString pour ton objet ou affiche tes champs un à un
0