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

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

Répondre au sujet
gregorybts 30 Messages postés dimanche 10 juin 2007Date d'inscription 1 novembre 2007 Dernière intervention - 1 nov. 2007 à 18:32
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de gregorybts
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 1 nov. 2007 à 14:42
0
Utile
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
gregorybts 30 Messages postés dimanche 10 juin 2007Date d'inscription 1 novembre 2007 Dernière intervention - 1 nov. 2007 à 15:55
0
Utile
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
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 1 nov. 2007 à 16:44
0
Utile
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
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 1 nov. 2007 à 16:46
0
Utile
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
gregorybts 30 Messages postés dimanche 10 juin 2007Date d'inscription 1 novembre 2007 Dernière intervention - 1 nov. 2007 à 16:55
0
Utile
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

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.