2010-10-19 10 views

risposta

20

Stai eseguendo un'applicazione RCP?

Se è così, allora il seguente codice si aprirà il tuo link nel browser sistema operativo predefinito:

// '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(); 
      } 
     } 
    }); 

È possibile che questo presuppone che non si desidera eseguire la scansione del testo già esistente per i collegamenti ipertestuali, ma semplicemente desidera creare una programmazione. Se è necessario il primo, sarà necessario utilizzare l'API dai pacchetti di testo JFace o simili.

+0

Qual è la parte che richiede RCP? Il 'PlatformUI.getWorkbench() ...'? – Mot

+0

perfetto! sì, ne avevo bisogno per un'applicazione RCP quindi questo ha fatto bene :) :) – Alb

+0

mklhmm: Sì, la chiamata a PlatformUI.getWorkbench() richiede il pacchetto org.eclipse.ui che fa parte dell'SDK di RCP. Sono felice che questo abbia funzionato per te Alb. – tbone