Salut à tous!
Bon je suis pas sur d'être dans la bonne section, mais je pense que c'est bien un problème d'ordre général. C'est peut être un peu complexe à expliquer, mais je vais faire de mon mieux :
En fait je dois développer une petite interface qui permet d'intéragir avec une base de donnée (pas besoin des détails). La base de donnée possède une table avec la structure suivante :
(concept_ID, glossary_ID, term, Wiki_concept, language)
En gros, à chaque terme dans la base correspond un wiki_concept : par exemple pour le terme "java" on aura les wiki "café", "language de prog" etc...
Ca va jusque la?
Bon...donc, mon interface permet en gros de faire ressortir toutes les informations concernant un terme que l'utilisateur rentre dans un textfield.
MAIS
Je dois en fait accessoirement ajouter une liste (moi je prefere une JComboBox c'est plus propre) qui affiche tous les wiki_concepts qui peuvent correspondre à un terme que l'utilisateur rentre!
En gros voila à quoi ca ressemble :
Maintenant, la ou je bloque :
Je ne parviens pas à remplir cette combobox avec les wiki. L'idée de base étant d'avoir un tableau de string que je vais remplir à l'aide d'une bête requete qui demande à la base de me renvoyer tous les wiki_associés au terme entré par l'utilisateur...mais le probleme c'est que je ne parviens pas à trouver un moyen de remplir le tableau puis d'afficher son contenu dans la combobox. En fait le code ressemble à ca:
PETITE PRECISION : le code au dessus est il me semble "foireux" avec le length, mais c'est pour montrer l'idée plus qu'autre chose
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 public class UserInterface extends JFrame implements ActionListener { private String [] wiki; public UserInterface() { //Dans cette partie du code on à la création et la mise en place des différents composants de l'interface, dont : JComboBox cb = new JComboBox(wiki); JButton b = new JButton("Search Wikis"); b.addActionListener(this); } } ... public void actionPerformed(ActionEvent ae) { if(ae.getSource().equals(b)) { try { String s = "Select distinct wiki_concept from analyser.glossaries where trim(term)=?"; ps1 = dbConnection.prepareStatement(s); ps1.setString(1,tf.getText().toString()); ResultSet rs1 = ps1.executeQuery(); int length = 0; while (rs1.next()){ length++; String name1 = rs1.getString(1); for (i=1;i<length;i++) { wiki[i]=name1; } } } catch (Exception e){ System.out.println("Error : "+e); } } }
Les problemes:
-Je ne peux pas connaitre la taille du tableau à l'avance car je ne connais pas le nombre de wiki_concepts pour un terme donné, je peux pas initialiser le tableau. Donc je me suis dis que j'ai qu'a créer un entier "length" que j'incrémente de 1 pour chaque résultat qu'il trouve => ca sera la taille du tableau.
-Meme si je parviens à remplir le tableau dans la partie actionlistener, comment je fais pour le "remonter" dans la premiere partie du code pour le combobox affiche ce qu'il y a dedans?...
J'espere avoir été aussi clair que possible...en fait c'est plus un problème de modélisation que j'ai je crois, j'ai besoins d'yeux neufs dessus :p
N'hésitez pas à demander si un truc n'est pas logique, je ne voulais juste pas poster les 200 lignes de code de l'interface
Merci pour la lecture!
Salutations et bon w-e à tous,
Spl0tch
Partager