Action sur Items "dynamiques" d'une JCombobox

Résolu/Fermé
lesfousduvolant313 Messages postés 2 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 6 novembre 2006 - 6 nov. 2006 à 13:49
lesfousduvolant313 Messages postés 2 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 6 novembre 2006 - 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
A voir également:

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
6 nov. 2006 à 15:24
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
lesfousduvolant313 Messages postés 2 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 6 novembre 2006
6 nov. 2006 à 15:28
Merci c'était tout à fait ça!!!
Rejoignez-nous