Slut
Ben moi, j'utilise plutôt le JEditorPane, mais j'ai un truc de ce style :
/**
* Titre : SuiviDeLien
* Description : Classe permettant de récupérer les liens hypertextes des fichiers HTML
* Copyright : Copyright (c) 2004
* Société : BakaOne
* @author Indiana_jules
* @version 1.0
*/
//Importation des packages nécessaires
import java.awt.Cursor;
import javax.swing.JEditorPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class FollowLink implements HyperlinkListener{
//Variables globales
private JEditorPane panneau;
private Cursor main = new Cursor(Cursor.HAND_CURSOR);
private Cursor defaut = new Cursor(Cursor.DEFAULT_CURSOR);
/**Constructeur par défaut*/
public FollowLink() {
}
/**Constructeur
* @param panneau Indiquation du JEditorPane de destination*/
public FollowLink(JEditorPane panneau) {
this.panneau = panneau;
}
/**Méthode retournant le JEditorPane
* @return Retour du JEditorPane destination*/
public JEditorPane getPanneau() {
return panneau;
}
/**méthode permettant d'agir lors d'un clique sur un lien
* @param evt Gestionnaire d'événement*/
public void hyperlinkUpdate(HyperlinkEvent evt) {
/*permet de changer le pointeur de la souris lors du survol d'un lien
hypertext*/
if(evt.getEventType()==HyperlinkEvent.EventType.ENTERED) {
panneau.setCursor(main);
}
/*permet de changer le pointeur de la souris en pointeur normal après
le survol d'un lien hypertext*/
else {
panneau.setCursor(defaut);
}
//si on clique sur un lien hypertexte, on l'affiche soit dans le JEditorPane
if(evt.getEventType()==HyperlinkEvent.EventType.ACTIVATED) {
try {
panneau.setPage(evt.getURL());
}
catch (Exception e) {
}
}
}
/**Méthode permettant de définir le JEditorPane destination
* @param panneau JEditorPane destination*/
public void setPanneau(JEditorPane panneau) {
this.panneau = panneau;
}
}
Et ensuite, quand je veux afficher du code HTML avec des liens :
File f = new File("./information/tutorial.html");
JEditorPane editDocumentation = new JEditorPane();
editDocumentation.setEditable(false);
editDocumentation.setPage("file:"+f.getAbsolutePath());
editDocumentation.addHyperlinkListener(new FollowLink(editDocumentation));
JScrollPane documentation = new JScrollPane(editDocumentation, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
Voilà, en espérant que cela répond à ton attente
[Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]