JScrollPane et JTexArea

JScrollPane et JTexArea - Java - Programmation

Marsh Posté le 18-02-2004 à 17:24:32    

Voilà j'ai mis un JTextArea dans un JScrollPane, je mets à jour le JTextArea en le réécrivant à chaque fois (c pour tenir à jour des informations genre frames/s, etc...), et il se remets à jour très vite.
Le problème est que le JTextArea étant plus grand que le JScrollPane (cas normal avec la barre de défilement), le JTextArea reste bloqué en bas du défilement, et dès que je veux remonter ça me le redescend automatiquement au prochain refresh... Que faire pour pouvoir naviguer correctement ?

Reply

Marsh Posté le 18-02-2004 à 17:24:32   

Reply

Marsh Posté le 18-02-2004 à 17:43:51    

je retrouve, plus la propriété, c'est bizare.
 
 
il faut 1) ne pas tout réécrire à chaque fois mais faire des mises-à-jour, c'est beaucoup plus léger, et surtout, ça ne déplace pas le curseur, qui fait se déplacer l'ascenseur.
 
2) dans une première étape de modification, sauver la position du curseur avant de tout réécrire et le remettre à la place précédente après réécriture, c'est pas parfait (because wrapping, de mots etc.) mais en attendant de faire le 1), ça peut aider.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 18-02-2004 à 21:39:46    

Le probleme est que pour faire une update je suis obligé de tout recopier vu que je change chaque ligne non ?
 
Sinon je ne trouve pas la manière pour sauver une position de curseur

Reply

Marsh Posté le 18-02-2004 à 21:54:06    

full_phil a écrit :

Le probleme est que pour faire une update je suis obligé de tout recopier vu que je change chaque ligne non ?
 
Sinon je ne trouve pas la manière pour sauver une position de curseur


http://java.sun.com/j2se/1.4.2/doc [...] Position()
http://java.sun.com/j2se/1.4.2/doc [...] ition(int)


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 18-02-2004 à 22:21:11    

merci,
mais cela ne marche toujours pas... Je remplis les champs avec un setText pour la premiere ligne et un append pour les autre c la bonne méthode ?

Reply

Marsh Posté le 18-02-2004 à 22:31:03    

Ah si cette fois ca marche sauf que : lol, bin.... là la scrollbar est bloquée de la meme maniere que à mon premier probleme mais cette fois en haut du JTextArea et qui fait que dès que je veux faire défiler vers le bas ca me le remonte automatiquement

Reply

Marsh Posté le 18-02-2004 à 22:37:40    

non sûrement pas.
 
Au pire tu fais un setText() avec tout le texte d'un coup.
 
Mais le mieux, c'est de récupérer le Document par getDocument() et de faire des insertString et des remove() dessus aux bons endroits.
 
edit : tu peux passer null au dernier paramètre de insertString().


Message édité par nraynaud le 18-02-2004 à 22:42:04

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-02-2004 à 03:27:00    

Bon, pour la premiere ligne ca marche parfaitement, mais je n'arrive pas avec l'offset à passer à la ligne....En ajoutant 1 ou même autre chose ca me le laisse sur la première ligne  
Ca doit etre simple mais je bloque

Reply

Marsh Posté le 19-02-2004 à 13:37:51    

full_phil a écrit :

Bon, pour la premiere ligne ca marche parfaitement, mais je n'arrive pas avec l'offset à passer à la ligne....En ajoutant 1 ou même autre chose ca me le laisse sur la première ligne  
Ca doit etre simple mais je bloque

Dans un Document, tout se compte en caractère (en glyphe plus exactement). Il n'y a pas de notion de ligne.


Message édité par nraynaud le 19-02-2004 à 13:38:16

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-02-2004 à 14:19:47    

J'ai avancé, et j'arrive à mettre à jour tout le JTExtArea (je faisais des tests pas assez complets), mais que ce soit avec un grand setTExt ou avec les insertString et remove, j'ai toujours ce problème de défilement bloqué.
Quand j'initialise pour la première fois le JTextArea, je suis obligé de modifier à la main la position du curseur avec les CaretPosition, et il semble me garder cette configuration. Mon JTextArea est static, cela vient peut-etre de ca ?

Reply

Marsh Posté le 19-02-2004 à 14:19:47   

Reply

Marsh Posté le 19-02-2004 à 14:40:45    

full_phil a écrit :

Mon JTextArea est static, cela vient peut-etre de ca ?

impossible.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-02-2004 à 16:45:03    

Tu es sûr que les mises à jour avec remove et insertString ne déplacent pas le curseur ? Car quand je désactive ces MAJ le JTextArea marche correctement... Je me perds dans cette affaire


Message édité par full_phil le 19-02-2004 à 22:34:25
Reply

Marsh Posté le 19-02-2004 à 22:29:55    

Personne n'a une idée ? :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed