Comment alimenter une jComboBox dynamiquement à partir d'un ordre sql ?

Résolu
jojo6666 Messages postés 10 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 17 janvier 2005 - 19 août 2004 à 16:46
WinLin Messages postés 86 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 3 septembre 2007 - 3 janv. 2007 à 03:47
Bonjour,

J'essaie depuis un certain temps (j'hésite à dire plusieurs jours) d'alimenter une jComboBox de façon dynamique.

Je m'explique : Je veux alimenter cette combo au déclenchement d'un certain évènement. J'ai donc créé un MouseListener à cet effet. Seulement, lorsque l'évènement voulu survient, aucun traitement ne se fait.

Je me demande donc si l'évènement est adéquate, sachant que j'en ai déjà essayé plusieurs.

Voici le code qui devrait alimenter cette combo :

private JComboBox getJComboBox1() throws SQLException {
if (jComboBox1 == null) {
string2 = new Vector();
jComboBox1 = new JComboBox();
jComboBox1.setBounds(126, 6, 172, 30);
jComboBox1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
string3.clear();
jComboBox2.removeAllItems();
try {
sqlrs = (String) (string2.elementAt((getJComboBox1().getSelectedIndex())));result2 requete.executeQuery("select idsession, debutsession, finsession from session where idstage " + sqlrs);
while (result2.next()){
String mem = (String) (result2.getString("idsession"));
string3.addElement(mem);
String debut = result2.getString("debutsession");
String fin = result2.getString("finsession");
String datedebut = debut.substring(8,10)+ "/" + debut.substring(5,7) + "/" + debut.substring(0,4);
String datefin = fin.substring(8,10)+ "/" + fin.substring(5,7) + "/" + fin.substring(0,4);
jComboBox2.addItem(datedebut + " au " + datefin);
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
ResultSet result1 = requete.executeQuery("select idstage, libstage from stage");
while (result1.next()){
String mem = (String) (result1.getString("idstage"));
string2.addElement(mem);
jComboBox1.addItem(result1.getString("libstage"));
}
}
return jComboBox1;
}

J'ai débogué mais à aucun moment, le traitement ne se fait.

Si vous avez des idées... Merci d'avance.

3 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
19 août 2004 à 18:41
GodConan :clown)

je ne pense pas que tu ai vraiment besoin d un MouseAdapter

a mon avis un ActionListener cerrai + approprier ... si c bien quand tu selectionne une valleur que tu veu changer les donnee ...

++
3
WinLin Messages postés 86 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 3 septembre 2007
3 janv. 2007 à 03:47
pour moi la méthode ici fonctione tres bien

public Vector LISTPAYSALIMCOMBO() {Connection connection;

Statement statement;

ResultSet resultSet;

String[] maListString;

Vector items =

new Vector();

try {Class. forName (

pilote);System.

out.println(
"Inert des données");connection = DriverManager.getConnection(

hosting,
login,
password);Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(

"select id,pays from pays");

while (rs.next()) {items.addElement(rs.getString(2));

}

System.

out .println(
"Inert des données Réussies");

}

catch (ClassNotFoundException ex) {System.

err.println(
"Cannot find the database driver classes.");System.

err.println(ex);}

catch (SQLException ex) {System.

err.println(
"Cannot connect to this database.");System.

err.println(ex);}

parentsql.
comboBox =
new JComboBox(items);System.

out.println(
"LISTCLISHORT : execute la query NON REQUESTEURSQL");System.

out.println(
"bouton ok rentre dans la methode de class");

//parentsql.frame.getContentPane().add(parentsql.comboBox, parentsql.gridBagConstraints_14);

return items;}

et quand je crée ma combobox

et la place dans mes fenetre

comboBox

=
new JComboBox(requet.LISTPAYSALIMCOMBO());

final GridBagConstraints gridBagConstraints_14 =
new GridBagConstraints();gridBagConstraints_14.

gridwidth = 2;gridBagConstraints_14.

ipadx = 95;gridBagConstraints_14.

gridy = 7;gridBagConstraints_14.

gridx = 3;

frame.getContentPane().add(
comboBox, gridBagConstraints_14);

et voila j'ai ma combo avec toutes la liste des pays pour mon formulaire en java.
0
WinLin Messages postés 86 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 3 septembre 2007
3 janv. 2007 à 03:47
pour moi la méthode ici fonctione tres bien

public Vector LISTPAYSALIMCOMBO() {Connection connection;

Statement statement;

ResultSet resultSet;

String[] maListString;

Vector items =

new Vector();

try {Class. forName (

pilote);System.

out.println(
"Inert des données");connection = DriverManager.getConnection(

hosting,
login,
password);Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(

"select id,pays from pays");

while (rs.next()) {items.addElement(rs.getString(2));

}

System.

out .println(
"Inert des données Réussies");

}

catch (ClassNotFoundException ex) {System.

err.println(
"Cannot find the database driver classes.");System.

err.println(ex);}

catch (SQLException ex) {System.

err.println(
"Cannot connect to this database.");System.

err.println(ex);}

parentsql.
comboBox =
new JComboBox(items);System.

out.println(
"LISTCLISHORT : execute la query NON REQUESTEURSQL");System.

out.println(
"bouton ok rentre dans la methode de class");

//parentsql.frame.getContentPane().add(parentsql.comboBox, parentsql.gridBagConstraints_14);

return items;}

et quand je crée ma combobox

et la place dans mes fenetre

comboBox

=
new JComboBox(requet.LISTPAYSALIMCOMBO());

final GridBagConstraints gridBagConstraints_14 =
new GridBagConstraints();gridBagConstraints_14.

gridwidth = 2;gridBagConstraints_14.

ipadx = 95;gridBagConstraints_14.

gridy = 7;gridBagConstraints_14.

gridx = 3;

frame.getContentPane().add(
comboBox, gridBagConstraints_14);

et voila j'ai ma combo avec toutes la liste des pays pour mon formulaire en java.
0
Rejoignez-nous