JComboBox récupérer et envoyer valeur

Résolu
gregorybts Messages postés 30 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 1 novembre 2007 - 30 oct. 2007 à 18:45
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+

6 réponses

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
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
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
1 nov. 2007 à 14:42
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.
0
gregorybts Messages postés 30 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 1 novembre 2007
1 nov. 2007 à 15:55
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
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
1 nov. 2007 à 16:44
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();
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
1 nov. 2007 à 16:46
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();
0
gregorybts Messages postés 30 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 1 novembre 2007
1 nov. 2007 à 16:55
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
0
Rejoignez-nous