Scroll auto avec un JScrollPane

Doppleganger Messages postés 1 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 27 octobre 2003 - 27 oct. 2003 à 10:02
stevyal Messages postés 25 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 19 mai 2023 - 15 avril 2014 à 10:20
Help! C'est probablement tout con mais ça fait un moment que je cherche sans résultat:
J'ai une JTextArea non-éditable qui sert à afficher des messages de mon prog, en les ajoutant avec append(_)...
Je l'ai mise dans un JScrollPane, mais quand la taille de ma zone de texte augmente, la barre de défilement reste en haut et il faut la descendre manuellement pour voir la suite.
Je voudrais qu'elle descende automatiquement à chaque entrée, comment je peux faire? Est-ce qu'il y a des commandes pour ça?

1 réponse

Urei Messages postés 1 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 29 novembre 2009
29 nov. 2009 à 16:34
Bonjour,

Tu as juste un bout de code à rajouter à l'endroit où tu veux faire scroller ton JTextArea, il faut utiliser la methode "scrollRectToVisible" pour modifier le rectangle visible à l'écran. Dans l'exemple suivant je suppose que tu as un jscrollpane attaché à une jtextarea affiché dans un conteneur quelconque.

//on récupère les coordonnées du rectangle visible actuel
Rectangle monrectangle = new Rectangle();
monrectangle = majtextarea.getVisibleRect();
//on décalle le rectangle vers le bas de la valeur qui correspond à la //différence de hauteurs entre ce qui existe et ce qui est affiché
monrectangle.y = monrectangle.y +(int)majtextarea.getBounds().getHeight() - (int)monrectangle.getHeight();
//et on l'affiche
majtextarea.scrollRectToVisible(monrectangle);

Sans le JScrollPane affiché ça ne fonctionne pas.
Il y a par contre un problème de scintillement que je n'ai pas encore trouvé comment résoudre, si quelqu'un a une idée, je suis preneur.
stevyal Messages postés 25 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 19 mai 2023
Modifié par stevyal le 15/04/2014 à 10:28
Bonjour j'ai un problème un peu similaire mais avec une JTable dans laquelle j'effectue des recherches. je souhaite en cas de recherche fructueuse, faire scroller la scrollbar jusqu'à la ligne de la JTable qui a été correspond à la recherche. pour cela je détecte la sélection de le ligne trouvée via ce code:
ListSelectionListener tableRowSelection = new ListSelectionListener(){

@Override
public void valueChanged(ListSelectionEvent e) {
Rectangle rec = new Rectangle();
rec = tableauListeArticles.getVisibleRect();
rec.y = rec.y + (int)tableauListeArticles.getBounds().getHeight() - tableauListeEtudiant.getHeight();
tableauListeArticles.scrollRectToVisible(rec);

}

};
j'ai juste ajouter le code ci dessus pour un peu singnifier ce que je souhaite faire. Merci.
0
Rejoignez-nous