Bonjour à tous,

Je suis confrontée à un problème qui, je crois, est très ancien, mais qui, je suppose, a dû être résolu depuis longtemps avec les dernières versions de Java.
Dans mon interface, je place un Panel contenant un jscrollpane contenant une jtextarea. Un petit extrait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
vue_trace = new JPanel();
vue_trace.setLayout(new java.awt.BorderLayout());
jsp1 = new JScrollPane();
console = new JTextArea();
console.setEditable(false);
console.setRows(3);
jsp1.setViewportView(console);
vue_trace.add(jsp1, java.awt.BorderLayout.CENTER);
Cette jtextarea est destinée à tracer les opérations de l'utilisateur en appelant la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public void setConsole(String txt) {
        console.append(txt+"\n");
        console.validate();
        jsp1.validate();
}
Jusque-là tout va bien. Mais quand l'utilisateur fait défiler la scrollbar ou quand j'utilise le positionnement automatique avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
javax.swing.text.DefaultCaret caret = (javax.swing.text.DefaultCaret)console.getCaret();
caret.setUpdatePolicy(javax.swing.text.DefaultCaret.ALWAYS_UPDATE);
l'affichage du texte dans la jtextarea est tout pourri : les lignes se chevauchent, sont répétées 2 fois... Si on retaille manuellement la fenêtre l'affichage redevient correct. Mais je ne peux pas demander ça aux utilisateurs, je vais me faire lyncher! Il faudrait peut-être ajouter un listener sur la scrollbar? Mais ça me paraît compliqué...

Y a t'il une solution simple, propre et rapide (parfaite, quoi!)?
Merci de votre aide.
Jacqueline