JComboBox récupérer et envoyer valeur [Résolu]

Messages postés
30
Date d'inscription
dimanche 10 juin 2007
Statut
Membre
Dernière intervention
1 novembre 2007
- - Dernière réponse : gregorybts
Messages postés
30
Date d'inscription
dimanche 10 juin 2007
Statut
Membre
Dernière intervention
1 novembre 2007
- 1 nov. 2007 à 18:32
Bonsoir,

dans mon programme, j'ai une combo box depuis peu mais je n'arrive pas à la lier avec ma bdd.

c'est un prog de gestion d'élève et la combobox concerne la situation familiale des parents.

voici ma déclaration :

private JComboBox listSituations = null ;
private
Object[] situations = new Object[]{"Célibataire", "Mariés", "Séparés",
"Divorçés", "Concubins", "PACeS", "Veuf / Veuve", "Remariés" } ;
private JComboBox getSituations() {
        if (listSituations == null) {
            listSituations = new JComboBox(situations);
            listSituations.setBounds(new Rectangle(170, 443, 143, 20));
        }
        return listSituations;
    }

add(getSituations(), null);

modification de fiche

for (int i=0;i<situations.length;i++)
{
         JOptionPane.showMessageDialog(null, situations[i], "Confirmation", JOptionPane.ERROR_MESSAGE);
         if (situations[i].equals(res.getString("situation_familiale_enfant")))
         {
                 JOptionPane.showMessageDialog(null, "OK", "Confirmation", JOptionPane.ERROR_MESSAGE);
                  listSituations.setSelectedItem(situations[i]);
         }
  }
et pour balancer la valeur selectionnée, je mets sa dans le insert into :
listSituations.getSelectedItem().toString()

voila tout... pourriez vous me dire ce qui ne va pas ???

A+
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
30
Date d'inscription
dimanche 10 juin 2007
Statut
Membre
Dernière intervention
1 novembre 2007
3
Merci
j'ai trouvé mon erreur, donc voici la solution pour ceux qui ont compris ce que je cherchais a faire.

C'est pas compliqué, je suis dans une modification de fiche personnel, je veux récupérer la valeur de la bdd pour situation personnel pour que cette valeur soit chosi à l'ouverture de la fiche dans la combobox plutot que ce soit le premier item.

en fait, je ne rentrai jamais dans le if car je comparai un string et un object donc .

for (int i=0;i<situations.length;i++)
{
         JOptionPane.showMessageDialog(null, situations[i], "Confirmation", JOptionPane.ERROR_MESSAGE);
         if (situations[i].toString().equalsIgnoreCase(res.getString("situation_familiale_enfant")))
         {
                 JOptionPane.showMessageDialog(null, "OK", "Confirmation", JOptionPane.ERROR_MESSAGE);
                  listSituations.setSelectedItem(situations[i]);
         }
  }

voila merci quand même et à plus

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de gregorybts
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
32
0
Merci
Salut:

Je ne vois pas où est ton problème?

1. Un simple constructeur de JComboBox résoud tout.
2. Il faut aussi comment utiliser JDBC.
Commenter la réponse de Ombitious_Developper
Messages postés
30
Date d'inscription
dimanche 10 juin 2007
Statut
Membre
Dernière intervention
1 novembre 2007
0
Merci
je sais comment utiliser JDBC, tout mon programme fonctionne avec, c'est juste la première fois que j'utilise une JComboBox

mon problème est que je n'arrive pas à récupérer la valeur de la base et la mettre dans le JComboBox (pour une modification de fiche pas exemple)

autre question qui n'est pas un problème : est ce qu'en faisant sa "listSituations.getSelectedItem().toString()", je récupère bien le libellé de ce qui est selectionné.

Merci d'avance pour votre aide
Commenter la réponse de gregorybts
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
32
0
Merci
Salut:

1. Pour remplir ta liste déroulante.

// Je suppose que tout est préparé pour accèder la BD (driver, Connection...)
protected Vector<Object> getData(Connection connection) throws SQLException {
    Vector<Object> data = new Vector<Object>();
 
    Statement stm = connection.createStatement();
    String query = "SELECT name FROM Table_Client";
    ResultSet rs = stm.executeQuery(query);
    while (rs.next()) {
       data.add(rs.getObject(0));
    }

    return data;
}

Puis dans ton programme tu fais:

try {
    Connection cnx = DriverManager.getConnection([...]);
    // ...
    JComboBox combo = createComboBox(getData(cnx));
    // ...
}
catch (SQLException e) {
    e.printStackTrace();
}

2. Pour ta deuxième question tu peux faire:

String item = listSituations.getSelectedItem().toString();

ou

String item = (String)listSituations.getSelectedItem();
Commenter la réponse de Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
32
0
Merci
salut:

Petite Erreur de frappe:

1. Pour remplir ta liste déroulante.

// Je suppose que tout est préparé pour accèder la BD (driver, Connection...)
protected Vector<Object> getData(Connection connection) throws SQLException {
    Vector<Object> data = new Vector<Object>();
 
    Statement stm = connection.createStatement();
    String query = "SELECT name FROM Table_Client";
    ResultSet rs = stm.executeQuery(query);
    while (rs.next()) {
       data.add(rs.getObject(0));
    }

    return data;
}

Puis dans ton programme tu fais:

try {
    Connection cnx = DriverManager.getConnection([...]);
    // ...
    JComboBox combo = new JComboBox(getData(cnx));
    // ...
}
catch (SQLException e) {
    e.printStackTrace();
}

2. Pour ta deuxième question tu peux faire:

String item = listSituations.getSelectedItem().toString();

ou

String item = (String)listSituations.getSelectedItem();
Commenter la réponse de Ombitious_Developper
Messages postés
30
Date d'inscription
dimanche 10 juin 2007
Statut
Membre
Dernière intervention
1 novembre 2007
0
Merci
merci beaucoup pour cette réponse ultra rapide mais en fait j'ai du mal expliquer pour la modification.

les différents choix de la combobox ne sont pas tirés de la bdd mais écris en dur.

en fait, je dois aller chercher dans la bdd la valeur et ensuite selectionner l'item de ma jcombobox qui correspond a cette valeur.

merci encore
Commenter la réponse de gregorybts