Il y à un Edit en bas de page..
Bonjour,
J'ai une JComboBox avec des noms.
Lorsque se sélectionne un de ces noms, je dois remplir une Box avec le résultat de la requête.
Lorsque j'utilise ce code cela fonctionne sans problèmes..
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 JComboBox cbox = new JComboBox(); cbox.setModel( ... ); cbox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ResultSet rs = null; PreparedStatement ps = null; ps = db.getConnection().prepareStatement(GET_INFOS_QUERY); rs = ps.executeQuery(); while (rs.next()) { myBox.put( new Infos(rs.getString("adresse"),rs.getInt("id")) ); } } }); // Dans la classe MyBox qui étend Box, instanciée en myBox : public void put(Infos infos){ syso("Ajout de l'infos #" + infos.getId() ); add( new JLabel(infos.getAdresse()) ); repaint(); }
Sauf que si j'ai beaucoup de résultats de requête, la JComboBox reste déroulée le temps que tous les myBox.put() se fassent.
J'ai donc essayer de mettre le tout dans un Thread mais alors chaque ligne est répétée.
J'ai essayer de mettre ma requête dans un bloic synchronisé mais ça n'a rien changé, et de même pour la boucle while..Ajout de l'infos #1
Ajout de l'infos #1
Ajout de l'infos #2
Ajout de l'infos #2
...
Quelqu'un à une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 new Thread(new Runnable() { public void run() { Object objSync = new Object(); synchronized (objSync) { // Code de requête et/ou boucle while sur ResultSet } } }.start();
ps : il y à peut-être quelques erreures de frappes dans les codes, mais le mien fonctionne réellement
Edit :
Ben en réalite Mr le Thread n'y est pour rien c'est le Listener qui renvoie deux actions : http://www.developpez.net/forums/sho...d.php?t=161124
Mais mon test n'est pas correct...
désolé.
Partager