IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Requete dans un Thread -> double résultat


Sujet :

AWT/Swing Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Requete dans un Thread -> double résultat
    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.
    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();
    }
    Lorsque j'utilise ce code cela fonctionne sans problèmes..
    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.
    Ajout de l'infos #1
    Ajout de l'infos #1
    Ajout de l'infos #2
    Ajout de l'infos #2
    ...
    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..
    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();
    Quelqu'un à une idée ?

    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é.
    Dernière modification par Invité ; 14/06/2006 à 12h52.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'un résultat de requete dans VBA
    Par marie10 dans le forum Access
    Réponses: 3
    Dernier message: 30/01/2006, 10h29
  2. Réponses: 3
    Dernier message: 25/11/2005, 14h51
  3. graphique résultat requete dans formulaire
    Par jordinette dans le forum Access
    Réponses: 2
    Dernier message: 24/11/2005, 13h52
  4. Réponses: 6
    Dernier message: 27/09/2005, 16h19
  5. résultat de requete dans un formulaire
    Par tomo0013 dans le forum Access
    Réponses: 3
    Dernier message: 17/09/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo