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 :

Redirection System.out + JScrollPane toujours en bas


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut Redirection System.out + JScrollPane toujours en bas
    Bonjour, j'ai cherché et trouvé plusieurs exemples mais rien ne semble fonctionner.

    Je désire faire afficher la sortie standard dans un JTextArea contenu dans un JScrollPane. Je n'arrive pas à faire en sorte que la barre de défilement reste toujours en bas, afin de pouvoir voir les messages apparaissant dans le JTextArea.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            PrintStream ps = new PrintStream(new TextAreaOutputStream(txtOut));
            System.setOut(ps);
            System.setErr(ps);
            scrollPane.setViewportView(txtOut);
            txtOut.setCaretPosition(txtOut.getText().length()); //fonctionne pas
            txtOut.setCaretPosition(txtOut.getDocument().getLength()); //fonctionne pas
    Merci à vous

  2. #2
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Salut,
    Il faut que tu fasses ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JScrollBar jsb = scrollpane.getVerticalScrollBar() ;
    jsb.setValue( jsb.getMaximum() ) ;
    Voilà voilà !

  3. #3
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Ou ça...(tjrs mieux de passer par l'EDT):

    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
    	public void ajoutTexte(final String texte)
    	{
    		if ( SwingUtilities.isEventDispatchThread () )
    		{
    			myArea.append(texte);
    			try 
    			{
    				//on fixe l'ascenseur en bas quel que soit le nombre d'ajout de texte
    				myArea.setCaretPosition(myArea.getLineEndOffset(myArea.getLineCount()-1));
    			} 
    			catch (BadLocationException e) 
    			{
     
    				e.printStackTrace();
    			}
    		}
    		else
    		{	Runnable callMAJ = new Runnable ()
    			{	public void run ()
    				{	ajoutTexte(texte);
    				}
    			};
    			SwingUtilities.invokeLater (callMAJ);
    		}
    	}

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Merci à vous 2

    Cependant le texte dans mon JTextArea s'ajoute automatiquement car je fais un System.setOut(printstream).

    Existe t'il un "event" afin que je puisse insérer une commande pour repositionner le JScrollBar dans mon JTextArea?

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par g0ldenrno
    Existe t'il un "event" afin que je puisse insérer une commande pour repositionner le JScrollBar dans mon JTextArea?
    C'est à toi de le gérer dans ta classe TextAreaOutputStream. Tu dois modifier la position du JScrollPane à chaque fois que tu ajoutes du textes dans ton JTextArea. Tout ceci doit bien entendu être effectué dans l'EDT afin d'éviter des conflits...

    a++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Pourquoi n'y avais-je pas pensé

    Thanks!

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

Discussions similaires

  1. JTextArea, redirection du System.out
    Par perldebutant dans le forum Composants
    Réponses: 3
    Dernier message: 27/12/2008, 22h36
  2. Redirection du System.out vers JEditorPane
    Par inest dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 07/05/2007, 16h41
  3. [JTextArea][JScrollPane] ascenceur toujours en bas ?
    Par _KB_ dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/04/2006, 22h52
  4. [Linux]Problème System.out.println + compiler
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 22h05

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