Mise a jour de la vue dans un JTextArea - Java - Programmation
Marsh Posté le 19-05-2005 à 20:41:20
Voila le code ... :
Code :
|
Une idée, un conseil ... un avis ?
Marsh Posté le 19-05-2005 à 21:57:38
Moi je dis UP !
Marsh Posté le 20-05-2005 à 00:33:57
Et aussi je dis :
Suffit de rajouter :
Code :
|
juste apres
Code :
|
Marsh Posté le 20-05-2005 à 02:59:57
pourquoi pas simplement un setCaretPosition(txt.length()) ?
Marsh Posté le 20-05-2005 à 03:04:01
Citation : setCaretPosition |
bon alors, pourquoi il faut le bouger à la main?
aussi, c'est pas le viewpane qu'il faudrait poueter, plutot? (enfin le bidule qui gere le scrolling quoi, ché pas)
Marsh Posté le 20-05-2005 à 10:30:33
-- > la technique c'est de mette le caret à la fin (y'a une Position spéciale si je me souviens bien) et de mettre une propriété genre viewFollowCaret()
sauf que quand on clique, on déplace le caret. donc soit il faut remettre le caret à la fin de chaque insert, soit on coupe le lien entre l'évènement de souris et le déplacement du caret.
Marsh Posté le 20-05-2005 à 12:08:29
Effectivement ca marche nikel le setCaretPosition(interactions.getText().length()), donc meme si on remonte la scrollBar a chaque insertion d'une nouvelle chaine ca descend le scrollBar automatiquement, mais bon le fait de recalculer le length() du text c'est pas franchement genial
Marsh Posté le 20-05-2005 à 12:44:52
je pense qu'il y a un cache de la longueur, ça m'étonnerait qu'il la recalcule à chaque fois.
Marsh Posté le 20-05-2005 à 13:42:00
"Note that the caret tracks change, so this may move if the underlying text of the component is changed." mais !?
Marsh Posté le 21-05-2005 à 16:44:45
-- > ben tu regardes l'offset du caret, tu insères du texte avant cet ofsset, tu re-regarde l'offset et le caret s'est barré à droite (enfin l'offset a augmenté ), rien d'extraordinaire.
Marsh Posté le 21-05-2005 à 19:52:20
ben j'aurais cru que c'était aussi applicable si on ajoutait du texte à la fin.
Marsh Posté le 21-05-2005 à 20:13:57
mais alors a quoi on joue ici avec setCaret là
Marsh Posté le 21-05-2005 à 20:20:08
parce que l'utilisateur, avec sa cliquette, il risque d'avoir déplacé le caret depuis la dernière insertion si tu n'a pas trafiqué le traitement des évènements
Marsh Posté le 21-05-2005 à 20:20:37
On joue à "la methode bourrine qui marche nikel" ...
Marsh Posté le 21-05-2005 à 20:31:17
nraynaud a écrit : parce que l'utilisateur, avec sa cliquette, il risque d'avoir déplacé le caret depuis la dernière insertion si tu n'a pas trafiqué le traitement des évènements |
ha, oui !
donc dans le cas d'un composant de texte non editable, le bidule va scroller automatiquement vers le bas tout seul?
Marsh Posté le 21-05-2005 à 20:38:01
the real moins moins a écrit : ha, oui ! |
non
parce qu'on peut déplacer le curseur dans un truc non-éditable
interro surprise pour voir si tu suis : dis-moi à quoi ça sert de déplacer le curseur sur un composant texte non-editable
Marsh Posté le 21-05-2005 à 21:28:29
nraynaud a écrit : non |
Le curseur c'est le caret non ?
Sinon je sais pas si t'a dis ca en plaisantant mais quand je fait setEditable(false) sur un JTextArea on peut rien deplacer à part une eventuelle srcollBar ... par contre on peut plus selectionner le texte faudrait un truc du genre setSelectable(true)
EDIT : ah non dsl j'ai dis des betises le texte est bien selectionable !
RE-EDIT : Ca serait possible de le rendre non selectionable ?
Marsh Posté le 21-05-2005 à 21:44:22
en mettant le selectionModel à null ? (pas testé)
déplacer le caret quand c'est désactivé, ça permet de faire la sélection avec shift+flèches.
Marsh Posté le 19-05-2005 à 20:11:35
Salut, voila j'ai redirigé la sortie standard vers le JTextArea de ma fenetre ... donc le texte se rajoute au fur et a mesure vers le Bas, le probleme c'est que je n'arrive pas a mettre a jour la vue ... cad comme si on descendais le scrollbar a chaque insertion de texte dans le JTextArea pour voir "effectivement" le texte rajouté.
Quelqu'un a til un conseil svp ?
Message édité par Chronoklazm le 19-05-2005 à 20:12:47
---------------
Scheme is a programmable programming language ! I heard it through the grapevine !