Bonjour a tous.
J'ai un JTextArea, contenu dans un JScrollPane.
Le texte contenu dans le JTextArea est régulièrement mis a jour (fonction automatique de colorisation de texte)
Seulement, si je descend dans mon texte avec ma ScrollBar, et qu'un rafraichissement automatique a lieu, je perd "ma partie visible"...en gros il me remonte ma scrollBar au maximum...

Je voudrais savoir quelle méthode utiliser pour réussir a mémoriser la partie 'visible' de mon JTextArea, de sorte qu'une fois la mise a jour terminée, je puisse revenir a mon affichage initial.

J'ai essayé avec pas mal de chose....sans succès

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
26
27
28
29
30
 
public void colorize (){
       System.out.println("colorize");
       //Sauvegarde d'une éventuelle sélection
       int sel_start = jta.getSelectionStart();
       int sel_stop = jta.getSelectionEnd();
       //Sauvegarde de la position du mon curseur de souris
       int mouse_position = jta.getCaretPosition();
       //Sauvegarde de ma zone visible...Mais ca fonctionne pas comme cela
       Rectangle rect = jta.getVisibleRect(); 
       /**
       *    Gestion de ma colorisation. En gros, je vire le texte de mon composant, et je le    
       *     regénère
       **/
       jta.setText("");
       StyledDocument doc = jta.getStyledDocument();
       addStyletoDoc(doc);
       //Je rempli a nouveau mon composant avec des méthodes de ce style
       //doc.insertString(doc.getLength(), (String)str.get(i), doc.getStyle("motcle"));
        .....
      //Position de ma souris
       jta.setCaretPosition(mouse_position);
       jta.setDocument(doc);
       //Récupération de ma sélection
       jta.setSelectionStart(sel_start);
       jta.setSelectionEnd(sel_stop);
       //En principe affichage de mon 'rectangle'....mais ca ne fonctionne pas
       jta.scrollRectToVisible(rect);
       jta.repaint();
   }
Voila, si quelqu'un a une idée....

Ps...petite question subsidiaire...quelqu'un connait t'il le moyen de changer le nombre d'espaces utilisés par la tabulation...car je trouve ceux par défaut dans java beaucoup trop grand.

Merci d'avance