Salut à tous!
J'ai un fichier html ouvert dans un JEditorPane.
Plusieurs liens sont présents.
Lorsque je clique sur l'un d'entre eux, je souhaite ouvrir la page dans mon browser.
Est il possible de faire ça?
Merci d'avance
Version imprimable
Salut à tous!
J'ai un fichier html ouvert dans un JEditorPane.
Plusieurs liens sont présents.
Lorsque je clique sur l'un d'entre eux, je souhaite ouvrir la page dans mon browser.
Est il possible de faire ça?
Merci d'avance
C'est tout à fait possible.
Pour cela, il te faut ajouter un HyperLinkListener sur ton JEditorPane et après dans la méthode hyperLinkUpdate (je suis pas sur du nom), tu récupères l'adresse avec getUrl sur l'event. Ensuite, tu peut employer JDic pour ouvrir la page avec le navigateur par défaut ;)
Je dois avoir un exemple quelque part si tu en as besoin.
Je suis preneur de l'exemple
désolé de ne pas faire l'effort de cherchere plus que ça, mais j'ai un autre problème à gerer et mon boss veut une nouvelle version demain!!!!!
Merci d'avance
Ajouter le listener à l'editorPane :
redéfinir la méthode hyperLinkUpdate :Code:editor.addHyperlinkListener(this);
Il faudra que tu ajoutes l'api JDIC dans le classPathCode:
1
2
3
4
5
6
7
8
9 public void hyperlinkUpdate(HyperlinkEvent e){ if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED){ try { Desktop.browse(e.getUrl()); } catch (DesktopException e) { e.printStackTrace(); } } }
Il n'y a pas quelque chose d'autre que JDIC, pcq, je ne peux pas ajouter quelque de lib.
Il n'y a rien dans le java standard???
Tu peut toujours employer une solution non portable, j'en ai une par exemple pour internet explorer sous windows, mais ca ne vaut de loin pas JDIC.
Ben je suis toujours preneur
Ca fait mal aux yeux une méthode pareille, mais la voilà :
Code:
1
2
3
4
5 try { Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + e.getURL()); } catch (IOException e1) { e1.printStackTrace(); }
OK, je comprends que ça te fasse mal aux yeux!!!!
Je vais voir avec JDIC je crois!!!!
Merci beaucoup
:mouarf:Citation:
Envoyé par menuge
Tu as bien raison, mais sans employer de lib, tu es obligé d'employer des trucs du style...