salut. j’ai un petit soucis. j’ai des tables dans un combobox et j’aimerai afficher les colonnes lorsque je choisir un une table dans le combobx.
Version imprimable
salut. j’ai un petit soucis. j’ai des tables dans un combobox et j’aimerai afficher les colonnes lorsque je choisir un une table dans le combobx.
Salut.
Quel est le souci exactement ?
je travail sur sur interface graphique. jai un jcombobox et un jlist . je veux charger les cs de mes tables dans le jlist. jai deja charger mon combobox avec mes tables. maintenant je veux lorsque je choisi une table dans mon combobox, les colonnes de cette table non cas safficher dans le jlist.
cest ce code qui me permet de charger mon combobox avec mes table :
il me restes a charger mon jlist avec les colonnes de mes tables lorsque je choisis une table dans combox ( les colonne de ce combobox doivent safficher dans le jlist).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 private void jComboBox_bd_dActionPerformed(java.awt.event.ActionEvent evt) { try { Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://192.168.1.52:5432/bd1"; String user = "postgres"; String passwd = "gestafric"; Connection conn = DriverManager.getConnection(url, user, passwd); Statement state = conn.createStatement(); String querySchemaname; querySchemaname = "SELECT * FROM pg_tables WHERE schemaname='public'"; ResultSet res = state.executeQuery(querySchemaname); jComboBox_table_d.removeAllItems(); jComboBox_table_d.addItem(""); while(res.next()){ Object [] listeP = { res.getString("tablename"), }; jComboBox_table_d.addItem(listeP[0].toString()); } res.close(); state.close(); } catch ( ClassNotFoundException | SQLException e){ } }
La méthode jComboBox_bd_dActionPerformed est à priori censer réagir à une sélection dans la combo : ton code est donc exécuté chaque fois qu'on fait un chois dans la combo, pour la vider et la recharger à partir d'une base de données. Alors, à moins que tu ais des dizaines de milliers de tables, c'est pas trop grave, mais bon, ce n'est pas logique du tout, et ça va être problématique pour exploiter la sélection, et ça ne sert strictement à rien (à part compliquer le code). Il faut charger le contenu de la combo dans l'initialisation, et ne plus jamais le faire, sauf si ton programme est capable de créer ou supprimer des tables, et le faire donc le cas échéant. Et ensuite, dans cette méthode tu exploites la sélection, par exemple avec la méthode getSelectedItem() qui te donnera le nom de la table sélectionnée dans la combo.
merci. je vais revoir mon code