Bonjour,

j'ai un thread A qui génère des évènements (des strings assez courts)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
fireMyEvent(new MyEvent(new String("abc " + Integer.toString(i) + "\r\n")));
et un thread B qui capte ces évènements. Le thread B comporte un JTextArea complété au fur et à mesure par les messages captés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
private synchronized void messageRecuVersEcran(String str) {
		ta.setText(ta.getText()  + str);
}
Le pb, c'est que ça plante l'application sans prévenir et sans aucun message.

Lorsque le JTextArea est mis à jour dans le même thread, aucun pb.
Le plantage a lieu aussi avec JTextPane.
J'ai placé un sleep (100) dans le thread qui génère les messages, après chaque message, ça va un peu mieux, sans plus.
Le plantage a lieu après 50 à 200 messages mais jamais au même endroit.

La méthode qui effectue la mise à jour du JTextArea est synchronized et c'est la seule de la classe.
Je n'ai pas d'autre accès au JTextArea pendant la mise à jour.
Si je redimensionne la fenetre qui contient le JTextAreaou la déplace pendant la mise à jour, ça augmente la probabilité de plantage.

Avant, j'avais un pb similaire : je n'utilisais pas les évènements : je passais au thread "générateur" l'instance de ma zone texte pour qu'il fasse lui-même la mise à jour et régulièrement : plantage.

Tout cela me fait penser qu'il s'agit d'une question liée aux threads.
Si qqun a une solution....

Merci