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 :

Scroll automatique dans un JTextPane [Trucs & Astuces]


Sujet :

Composants Java

  1. #1
    En attente de confirmation mail

    Inscrit en
    Novembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 59
    Points : 60
    Points
    60
    Par défaut Scroll automatique dans un JTextPane
    Bonjour à tous

    j'ai fais pas mal de recherches avant de commencer à poser cette question. Donc j'espère que je pose pas une question qui a déjà été posé !

    Bref voici mon problème. Je suis en train de programmer un petit jeu en Java. J'ai crée une interface qui gère ce jeu. L'interface se décompose en deux parties : une partie "Plateau de jeu" ou se déplace les pions et une partie "Log" où j'écris au fur et à mesure le log des actions effectuées. Cette partie log est en fait un JTextPane.
    Le problème est que lorsque j'ajoute du texte dans ce composant, il ne scroll pas automatiquement pour laisser apparaitre le texte que je viens d'entrer.
    Quelqu'un connaîtrait-il la méthode pour réaliser ce scrolling automatique ?

    Merci beaucoup pour toute aide.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 120
    Points : 133
    Points
    133
    Par défaut
    c'est pas setAutoScroll(true) ?

    je lance sa au hazard

  3. #3
    En attente de confirmation mail

    Inscrit en
    Novembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 59
    Points : 60
    Points
    60
    Par défaut
    la méthode exacte est setAutoscrolls(boolean b) et malheureusement ce n'est pas ça, j'ai déjà essayé

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    tu as essayé de mettre systématiquement le curseur à la fin du texte??

    (pour ça tu as la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    setCaretPosition
    public void setCaretPosition(int position)
     
    Sets the position of the text insertion caret for the TextComponent. Note that the caret tracks change, so this may move if the underlying text of the component is changed. 
    If the document is null, does nothing. The position must be between 0 and the length of the component's text or else an exception is thrown. 
     
    Parameters:
    position - the position 
    Throws: 
    IllegalArgumentException - if the value supplied for position is less than zero or greater than the component's text length
    )
    Si tu as envie de travailler, assieds-toi et attends que ça passe...

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    J'ai eu la même problème, y'a une solution dans la faq: dans la rubrique SWING: Comment faire pour que le dernier ajout de texte dans un JTextArea contenu dans un JScrollPane soit visible ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    try {
            monTextArea.scrollRectToVisible(monTextArea.modelToView(monTextArea.getDocument().getLength ()));
    } catch (javax.swing.text.BadLocationException err) {
    }

  6. #6
    En attente de confirmation mail

    Inscrit en
    Novembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 59
    Points : 60
    Points
    60
    Par défaut
    merci pour vos réponses.

    cependant, nwartelle, la solution que tu m'as donné, et qui figure en effet dans la FAQ, ne marche pas dans mon cas. Vas savoir pourquoi, ca commence à m'embeter fortement cette histoire


  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Pourtant, ça a très bien marché pour moi... C'est vrai que la faq parle de JTextArea et pas de JTextPane, mais théoriquement, scrollRectToVisible() peut aussi s'appliquer à un JTextPane... Tu as bien mis ton JTextPane dans un JScrollPane?

  8. #8
    En attente de confirmation mail

    Inscrit en
    Novembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 59
    Points : 60
    Points
    60
    Par défaut
    oui je l'ai bien mis dans un scrollpane.

    Juste pour vérification, à quel moment dois je écrire cette méthode ? Pour le moment, je l'ai mise dans l'écouteur qui écoute le bouton Play() de mon jeu (ainsi, à chaque fois qu'on "play", j'écris le log dans la partie Log du jeu (donc le jtextpane)). Ai je raison ?


    merci encore

  9. #9
    Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Moi, je l'ai mise à l'ajout de texte... ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void printMessage(String m)
    {
    messages.append(m+"\n");
    try {
    messages.scrollRectToVisible(messages.modelToView(messages.getDocument().getLength ()));
    } catch (javax.swing.text.BadLocationException err) {}
    }
    (messages, c'est mon JTextArea)

  10. #10
    En attente de confirmation mail

    Inscrit en
    Novembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 59
    Points : 60
    Points
    60
    Par défaut


    ca marche en effet si on le met quand tu ajoutes le texte...


    un grand merci à tous pour l'aide et surtout nwartelle

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

Discussions similaires

  1. Scrolling automatique dans une Zone
    Par yack.ston dans le forum Qt
    Réponses: 1
    Dernier message: 17/01/2014, 20h31
  2. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  3. Scroll automatique dans un DataGridView
    Par fikou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/09/2008, 16h24
  4. Scrolling automatique dans TextBox
    Par stephane.julien dans le forum C#
    Réponses: 6
    Dernier message: 09/10/2007, 18h27
  5. Réponses: 2
    Dernier message: 11/05/2004, 11h17

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