2010-10-19 21 views

Répondre

20

Exécutez-vous une application RCP?

Si oui, alors le code suivant ouvrira votre lien dans le navigateur OS par défaut:

// 'parent' is assumed to be an SWT composite 
Link link = new Link(parent, SWT.NONE); 
    String message = "This is a link to <a href=\"www.google.com\">Google</a>"; 
    link.setText(message); 
    link.setSize(400, 100); 
    link.addSelectionListener(new SelectionAdapter(){ 
     @Override 
     public void widgetSelected(SelectionEvent e) { 
       System.out.println("You have selected: "+e.text); 
       try { 
       // Open default external browser 
       PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(e.text)); 
       } 
      catch (PartInitException ex) { 
       // TODO Auto-generated catch block 
       ex.printStackTrace(); 
      } 
      catch (MalformedURLException ex) { 
       // TODO Auto-generated catch block 
       ex.printStackTrace(); 
      } 
     } 
    }); 

Ce qui précède suppose que vous ne voulez pas analyser le texte existant pour les liens hypertexte, mais souhaitez simplement créer un programme. Si le premier est requis, vous devrez utiliser l'API des paquets de texte JFace ou similaire.

+0

Quelle est la partie qui nécessite RCP? Le 'PlatformUI.getWorkbench() ...'? – Mot

+0

parfait! oui j'en avais besoin pour une application RCP donc cela a bien fait l'affaire :) – Alb

+0

mklhmm: Oui, l'appel PlatformUI.getWorkbench() nécessite le paquet org.eclipse.ui qui fait partie du SDK RCP. Je suis content que cela ait marché pour vous Alb. – tbone