2012-06-10 12 views
86

Wie kann ich einen Link in Standard-Browser mit einem Knopf klicken, entlang der Linien vonEinen Link im Browser mit Java-Button öffnen?

button.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     open("www.google.com"); // just what is the 'open' method? 
    } 
}); 

?

+2

Sie versucht haben, könnten an den [für die Klasse JavaDocs] suchen (http://docs.oracle.com/javase/7/docs/ api/java/awt/Desktop.html), die in der akzeptierten Antwort Ihrer [letzten Frage] verwendet wird (http://stackoverflow.com/questions/10966999/how-to-make-a-button-that-when- geklickt-öffnet-das-appdata-verzeichnis! Diese Dokumente. sind sehr praktisch, sie entweder an Ihre IDE anhängen oder als Lesezeichen für die Online-Version verwenden. –

+0

Doppelte Frage: http://Stackoverflow.com/q/5226212/873282 – koppor

+1

Mögliches Duplikat von [Java-GUI zum Öffnen einer Webseite im Webbrowser erhalten] (http://StackOverflow.com/questions/602032/getting-java gui-to-öffnen-eine-webseite-in-web-browser) – Suma

Antwort

204

Verwenden Sie die Desktop#browse(URI) Methode. Es öffnet einen URI im Standardbrowser des Benutzers.

public static boolean openWebpage(URI uri) { 
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; 
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { 
     try { 
      desktop.browse(uri); 
      return true; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
    return false; 
} 

public static boolean openWebpage(URL url) { 
    try { 
     return openWebpage(url.toURI()); 
    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 
+0

dies scheint nicht in JAR-Dateien von Netbeans 7.x zu arbeiten. Es funktioniert, wenn der Code von Netbeans ausgeführt wird, aber nicht, wenn er als JAR-Datei bereitgestellt wird ... zumindest nach meiner Erfahrung. Ich suche immer noch nach einer Lösung. – MountainX

+0

@MountainX Debuggen und überprüfen Sie, ob der Desktop unterstützt wird und dass Sicherheitsimplementierungen den Zugriff auf die Desktop-Instanz nicht einschränken. Wenn Sie das JAR als Applet ausführen, ist die Sicherheit wahrscheinlich der Schuldige. – Vulcan

+0

@ Vulcan - Ich benutze das JAR nicht als Applet. Mir sind keine Sicherheitseinstellungen bekannt, die dies verhindern würden. Ich habe es "umgangen", indem ich 'new ProcessBuilder (" x-www-browser ", uri.toString()) aufgerufen habe;'. Sie würden denken, dass der ProcessBuilder-Aufruf nicht funktionieren würde, wenn Sicherheitseinschränkungen vorhanden wären. Aber es funktioniert. Ich habe keine Ahnung, warum 'desktop.browse (uri)' nicht funktioniert, aber ich habe gesehen, dass es für viele Leute nicht funktioniert. Ich vermutete, dass es ein Problem mit Netbeans ist, aber ich weiß es nicht. – MountainX

29
public static void openWebpage(String urlString) { 
    try { 
     Desktop.getDesktop().browse(new URL(urlString).toURI()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
22
try { 
    Desktop.getDesktop().browse(new URL("http://www.google.com").toURI()); 
} catch (Exception e) {} 

Anmerkung: Sie müssen java.net

2
private void ButtonOpenWebActionPerformed(java.awt.event.ActionEvent evt) {           
     try { 
     String url = "https://www.google.com"; 
     java.awt.Desktop.getDesktop().browse(java.net.URI.create(url)); 
     } 
     catch (java.io.IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    }  
posted
0
public static void openWebPage(String url) { 
     try { 
      Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; 
      if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { 
       desktop.browse(new URI(url)); 
      } 
      throw new NullPointerException(); 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, url, "", JOptionPane.PLAIN_MESSAGE); 
     } 
    } 
Verwandte Themen