Salut à tous, je bloque sur un probleme de JAVA.
Je dois concevoir un navigateur SQL. Un JMenuItem déclenche un PopUp qui me permet d'ouvrir une connexion, ça fonctionne.
Un JMenu se charge alors et liste toutes les tables présentes sur la base de données. (Ca aussi, ça fonctionne).
Pour chaque table, j'ajoute un ActionListener qui me permet, lors du clic sur le JMenuItem (en gros lorsque l'on clique sur une table), d'afficher la table dans un JPanel du navigateur.
Voici le code utilisé :
La fonction effectuerRequete fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 String recuptab = "select table_name from all_tables order by table_name"; try{ Statement stm = conn.createStatement(); ResultSet rset = stm.executeQuery(recuptab); JMenuItem temp_name; while(rset.next()) { tablename = rset.getString(1); temp_name = new JMenuItem(tablename); temp_name.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { effectuerRequete("select * from "+tablename); } }); menutable.add(temp_name); } catch(java.sql.SQLException jq) { areaconnec.setText("La requete a echoue"); }
Le soucis est qu'à chaque boucle, tous les actionlistener sont remplacés par celui en cours de construction. Finalement, lorsque l'on clique sur un JMenuItem (choix d'une table), on affiche toujours la table concernant le dernier JMenuItem.
Je souhaite donc pouvoir trouver une solution pour résoudre mon soucis.
Merci d'avance et joyeuses fêtes.
Partager