Bonjour,
J'ai une fenetre qui contient un JEditorPane appelé answersPane.
answersPane contient du texte de type "text/html" par la méthode
answersPane.setContentType("text/html");
Je mes des liens hypertexte dans ce JEditorPane.
Exemple:
answersPane.setText("<a href=\""+ unString +"</a><br>");
Puis je fais
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:
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!!
});
} |
Partager