Bonjour,

J'ai une fenetre qui contient un JEditorPane appelé answersPane.
answersPane contient du texte de type "text/html" par la méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
answersPane.setContentType("text/html");
Je mes des liens hypertexte dans ce JEditorPane.

Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
answersPane.setText("<a href=\""+  unString +"</a><br>");

Puis je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
answersPane.addHyperlinkListener
pour pouvoir effectuer une action lorsque l'utilisateur clique sur un lien écrit dans mon JEditorPane

Dans la méthode public void hyperlinkUpdate(HyperlinkEvent e)
de l'HyperlinkListener je veux pouvoir démarrer un objet monTimer de la classe Timer.

Je veux donc pouvoir faire monTimer.start() quand l'utilisateur a cliqué sur un lien.

MON PROBLEME EST:

Mais monTimer.start() ne fonctionne pas (rien ne se passe, et aucune exception levée) lorsque cette méthode est appelée dans public void hyperlinkUpdate.

Par contre si j'appelle cette méthode ailleurs dans mon de code là pas de problème, mon timer démarre.


D'après mes recherches je suppose qu'il y a un lien avec l'EDT et les threads, mais je suis complètement perdu.

Si quelqu'un pourrait me dire comment je dois m'y prendre ça serait super.


Merci d'avance

Ci dessous un code résumant mon problème:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
// answersPane est un JEditorPane
 
	private void gererClic(){
		answersPane.addHyperlinkListener( new HyperlinkListener(){		
			public void hyperlinkUpdate(HyperlinkEvent e) {
 
monTimer.start();   //Ca ne marche pas quand je l'écris ici. 
//Par contre ça démarre si je place cette méthode ailleurs dans mon code.
// A l'aide!!
 
});
	}