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

Agents de placement/Fenêtres Java Discussion :

affichage de log dans un splitpane


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut affichage de log dans un splitpane
    Bonjour à tous,

    Je commence dans le développement en JAVA (pas facile l'objet après quelques années de C)


    j'ai un projet à réaliser une application JAVA avec une JFFrame divisé en 3.

    L'une de ces 3 parties est une JTextArea dans laquelle je voudrais afficher des log afin que l'utilisateur de l'application soit au courant de l'avancement de ces taches.

    J'ai créé une classe LogPage extends JTextArea

    avec une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public static void AddLog(String string){
    	MainWindow.LogPane.append(string);	
    }
    MainWindow.LogPane étant la fameuse 3eme partie


    lorsque j'utilise la methode AddLog cela m'affiche bien mes log dans la 3eme partie ; seulement, les logs ne s'affiche pas au fur et à mesure.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while((line = RAF.readLine()) != null) {
        numline++;
        linevalue = line.split(";");				
        LogPage.AddLog("import line " + numline + " done.\n");			
    }
    RAF.close();
    Dans une fonction qui lit un fichier je voudrais mettre dans les logs les lignes parcourues et afficher au fur et à mesure. Probleme : tout s'affiche à la fin du traitement

    Pourquoi ??

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il faut que tu exécutes tes tâches dans un Thread séparé, puis que tu mettes à jour ta JTextArea depuis ce thread en prenant bien soin d'englober l'appel des méthodes de la JTextArea dans un SwingUtilities.invokeLater.

    De façon générale toute tâche longue doit être exécutée dans le Thread séparé, et tout appel à des méthodes d'un composant Swing doit être fait depuis le Thread de Swing (appelé EDT).

    Lecture obligatoire à ce sujet: http://gfx.developpez.com/tutoriel/j...ing-threading/

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    merci beaucoup

    Très intéressant effectivement...
    J'apprends le java et ce genre de concept est effectivement à connaître.

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

Discussions similaires

  1. affichage des logs Tomcat dans console
    Par gloglo dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 29/01/2009, 16h42
  2. Affichage de logs dans une fenetre simple
    Par Dazdh dans le forum Tkinter
    Réponses: 1
    Dernier message: 05/12/2008, 12h09
  3. Eviter l'affichage des notes dans le log
    Par stefsas dans le forum SAS Base
    Réponses: 2
    Dernier message: 20/06/2008, 16h50
  4. [C++/CLI]Affichage du log dans un form
    Par S2S dans le forum C++/CLI
    Réponses: 0
    Dernier message: 21/09/2007, 17h11
  5. [TOMCAT][LOGS]pas d'affichage de trace dans la console
    Par fabszn dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 23/08/2005, 02h28

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