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

Composants Java Discussion :

Mise à jour JScrollBar selon JTextArea


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut Mise à jour JScrollBar selon JTextArea
    Bonjour à tous,
    J'ai une JFrame qui contient un panel général qui lui-même contient un 1er panel avec un label et une JProgressBar et un 2nd panel qui contient un JScrollPane contenant un JTextArea. Le but est de fabriquer une JFrame réutilisable et sympa pour voir les traitements effectuées. Donc le premier panel indique l'état d'avancement, et le second, les fichiers traités.
    Je lance le tout d'une classe extérieure qui transmet le nombre de fichiers et ce qu'il faut écrire dans le JTextArea.
    Tout se passe bien pour le JProgressBar qui progresse bien (!)
    Par contre, j'ai un problème de mise à jour de la barre verticale du scrollbar lorsque j'ajoute du texte dans son JTextArea.
    Celui-ci est vide au départ et se rempli bien jusqu'à sa hauteur préférée. Mais lorsque la JScrollBar devrait arriver, elle n'arrive pas.
    Mon traitement détecte des fichiers mauvais et un dialogue s'affiche. Lorsque c'est le cas, là la JScrollBar apparait et est bien positionnée sur le fichier incriminée. Mais lorsque je valide le dialogue, elle reste figée, ainsi que mon JTextArea.
    Bien sûr, à la fin du traitement, la scrollbar est navigable, le textarea contient tout ce qu'il faut ... etc.
    Tout se passe donc comme si il manquait un update quelque part (je me souviens avoir galérer pour trouver le progressbar.update(progressbar.getGraphics());!!)
    J'ai essayé à peu près tout et rien ne marche : le setCaretPosition à la fin du textarea, le revalidate(), les astuces où on fait un setText avec ce qu'on récupère après le append, le repaint, le update ... bref je suis perdu!!!
    Par contre, ça marche lorsque je lance la frame via un main de sa classe (sinon ça serait pas marrant!)
    Merci d'avance pour vos lumières !!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut Résolu
    soit txtAppend mon JTextArea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    txtAppend.append(txt);
    txtAppend.scrollRectToVisible(new Rectangle(0,txtAppend.getHeight()-2,1,1));
    et surtout, surtout, commenter le txtAppend.setPreferredSize(...) si vous en avez mis un !
    je me suis inspiré de la réponse d'adiGuba à ce post : ICI
    donc merci à lui !

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

Discussions similaires

  1. Mise à jour données selon table de correspondance
    Par maxime82 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 18/10/2010, 17h30
  2. Réponses: 2
    Dernier message: 16/04/2008, 00h18
  3. [JTextArea] mise à jour
    Par mehdidoch dans le forum Composants
    Réponses: 7
    Dernier message: 15/02/2008, 17h08
  4. Réponses: 1
    Dernier message: 20/11/2007, 16h07
  5. Réponses: 7
    Dernier message: 30/08/2006, 15h38

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