Action sur Items "dynamiques" d'une JCombobox [Résolu/Fermé]

lesfousduvolant313 2 Messages postés mercredi 29 novembre 2000Date d'inscription 6 novembre 2006 Dernière intervention - 6 nov. 2006 à 13:49 - Dernière réponse : lesfousduvolant313 2 Messages postés mercredi 29 novembre 2000Date d'inscription 6 novembre 2006 Dernière intervention
- 6 nov. 2006 à 15:28
Bonjour à tous!

Voilà j'ai un problème :

J'ai une JcomboBox qui, lorsque l'on clic sur un bouton, affiche une liste de noms. Ces noms correspondent à différentes instances d'une même classe. Jusque là tout va bien. Mais j'aimerai pouvoir afficher les caractéristiques de ces noms (définis dans ma classe) dans des champs textes mis en place. Mon problème se situe dans le fait que ces items n'ont pas de noms puisqu'étant rappatriés dans ma combobox au moyen d'une boucle for. Comment faire à partir de là pour remplir mes champ lorsque je clic sur un de ces items....

Bravo à  celui qui aura compris ma question car en la relisant je m'y perds un peu.... D'autant plus que je débute en java, et en interface graphique encore plus!!!
Si jamais y a besoin de précisions n'hésitez pas.

Merci d'avance
Afficher la suite 

2 réponses

Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 6 nov. 2006 à 15:24
+3
Utile
Salut,

baaaaaa j'ai pas tout compris mais bon si je ne me trompe pas trop sur ton prob le code ci-dessous devrai répondre à ta question sinon baaaa reformule :P

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.DefaultListModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class Test {

    public static void main(String[] args) {
        final JFrame f = new JFrame();
        f.setSize(300, 300);
        f.setLocationRelativeTo(null);
       
       
        //initialise le contenu du combo
        Vector vecMyData = new Vector();
        for(int i = 1; i <= 10; i++)
            vecMyData.add(new MyData("Champ " + i, "Mon champs object n°" + i));
        //init du combo
        final JComboBox cb = new JComboBox(vecMyData.toArray());
        //init de la liste
        final JList list = new JList(new DefaultListModel());
        //ici je ne gere que la simple selection
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        list.setPreferredSize(new Dimension(100, 100));
       
        //init du listener du combo
        cb.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                //on recupe l'objet mydata et on le met dans la liste
                MyData md = (MyData)cb.getSelectedItem();
                if(md != null){
                    DefaultListModel model = (DefaultListModel)list.getModel();
                    model.addElement(md);
                }
            }
        });
       
        //init du listener de la list
        list.addListSelectionListener(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent e) {
                //on recup la selection de la liste et on affiche dans un JOptionPane
                MyData md = (MyData)list.getSelectedValue();
                if(md != null){
                    JOptionPane.showMessageDialog(f,
                            "<html>Label : " + md.getLabel() +
                            "
Object : " + md.getObject() + "</html>", "Info",
                            JOptionPane.INFORMATION_MESSAGE);
                }
            }
        });

        JPanel panel = new JPanel();
        panel.add(cb);
        panel.add(new JScrollPane(list));
        f.setContentPane(panel);
        f.setVisible(true);
    }
}

class MyData {
    private String label = null;
    private Object object = null;
   
    public MyData(String label, Object object){
        this.label = label;
        this.object = object;
    }
   
    public Object getObject() {
        return object;
    }
    public String getLabel() {
        return label;
    }
   
    public String toString(){
        return label;
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
lesfousduvolant313 2 Messages postés mercredi 29 novembre 2000Date d'inscription 6 novembre 2006 Dernière intervention - 6 nov. 2006 à 15:28
0
Utile
Merci c'était tout à fait ça!!!
Commenter la réponse de lesfousduvolant313

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.