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

Collection et Stream Java Discussion :

problème de rafraichissement de tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut problème de rafraichissement de tableau
    Bonjour à tous,
    J'ai un soucis, j'ai un programme qui extrait les données dans ma base et qui les affiches. je voudrais que cette actualisation se fasse de manière automatique c'est a dire après un temps bien défini. j'ai utilisé pour cela un Thread.sleep mais voila a chaque actualisation j'ai une nouvelle fenetre qui apparait. comment faire pour n'avoir qu'une seule fenetre a la fois.

    extrait du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void main(String args[]) {
     
        try {
        	for (int i = 0; i < 3; i++) {
        	MainClass tt = new MainClass();
            tt.setVisible(true);
        	Thread.sleep(1000);
     
        	}
          } catch (InterruptedException x) {
            }
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Dans ta boucle tu crées une nouvelle MainClass à chaque tour et tu l'affiches. Il faut simplement utiliser le même objet à chaque fois. À intervalles réguliers, tu appelle une méthode sur cet objet qui met à jour (ce que tu as l'air de faire dans le constructeur en fait)

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    J'ajouterai que pour faire ce genre de traitement périodique, il faut mieux utiliser un Timer et TimerTask plutôt qu'une boucle et un sleep.

    Dans ton code le thread principale de l'application est mis en attente.
    Si une exception survient, tu n'auras plus de mise à jour.
    Tu ne gères pas l'exception, il faut au moins faire x.printStackTrace pour savoir ce qui s'est passé.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut
    est ce que je peux avoir plus de précision pour savoir comment on fait appel a une méthode.
    voici mon code:

    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
    public class MainClass extends JFrame{
     
      JTextField hostField;
     
      JTextField queryField;
     
      QueryTableModel qtm = new QueryTableModel();
     
     
      public MainClass() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setBounds(50,50,950,800);
        setTitle(" Contrôleur de Ticket   ");
     
         ..............(ici il ya tout ce qui est jpanel etc...)
     
     qtm.setHostURL(hostField.getText().trim());
        qtm.setQuery("select * from controle order by num_ticket");
    }
     
      public static void main(String args[]) {
     
        try {
     
        	for (int i = 0; i < 4; i++) {
        		MainClass tt = new MainClass();
        	  	tt.setVisible(true);
         	  	Thread.sleep(5000);
     
        	}
          } catch (InterruptedException x) {
            }
    }
     
    }
    j'attends votre aide avec impatience ....

  5. #5
    Invité
    Invité(e)
    Par défaut
    Euh... Je suis pas sûr d'avoir compris la question mais en gros ta mise à jour qui semble se faire ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    qtm.setHostURL(hostField.getText().trim());
    qtm.setQuery("select * from controle order by num_ticket");
    (même si les noms sont pas très explicites....)
    Cette mise à jour tu la mets dans une méthode de ton objet et c'est cette méthode que tu appelles à intervalles réguliers, pas la peine de reconstruire toute ta fenêtre...
    Sinon renseigne toi (sur ce même site par exemple) sur comment bien travailler avec les threads en swing parce que là tu bloques tout, et aussi sur la gestion des erreurs , comme a déjà dit CheryBen

  6. #6
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 94
    Par défaut
    salut, excusez ma question mais j'ai besoin de votre coup de main pour réaliser cette méthode. pour la gestion des erreurs je le ferai après ça c'est pas trop un problème.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,
    Ce code que tu exécutes à la fin du constructeur pour charger les informations, il te faut le mettre dans une méthode, mettons update, et c'est cette méthode que tu appelles pour mettre à jour tes données. Celle ci est appelée à intervalles réguliers si tu le souhaites en utilisant les classes indiquées ci dessus par CheryBen, et en essayant de ne pas bloquer l'EDT en lancant les choses proprement dans les threads appropriés, un petit tour sur ce tuto pourra t'aider : http://gfx.developpez.com/tutoriel/j...ing-threading/

Discussions similaires

  1. [AJAX] Rafraichissement de tableau avec ajax
    Par Lini62 dans le forum AJAX
    Réponses: 5
    Dernier message: 19/10/2010, 17h21
  2. problème d'affectation de tableau ...
    Par Mike888 dans le forum C
    Réponses: 23
    Dernier message: 26/02/2005, 14h52
  3. [SWING] Problème de rafraichissement
    Par david71 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/05/2004, 15h38
  4. [JTree]problème de rafraichissement
    Par peppena dans le forum Composants
    Réponses: 9
    Dernier message: 20/01/2004, 14h06
  5. Toujours un problème de rafraichissement de DBGrid
    Par tripper.dim dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h15

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