2012-06-10 32 views
86

nasılJava butonu ile tarayıcıda bir bağlantı açın?

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

çizgisinde bir düğme tıklama ile varsayılan tarayıcıda bir bağlantı açabilir?

+2

nakledilir [son soru] 'unun kabul edilen yanıtında kullanılan api/java/awt/Desktop.html) (http://stackoverflow.com/questions/10966999/how-to-make-a-button-that-when- tıklandığında açar-appdata-dizin)! Bu dokümanlar. Çok kullanışlıdır, ya IDE'ye bağlayabilir veya çevrimiçi versiyonu favorilerinize ekleyebilirsiniz. –

+0

Yinelenen soru: http://stackoverflow.com/q/5226212/873282 – koppor

+1

Olası kopyası [Web tarayıcısında bir web sayfasını açmak için java gui'nin alınması] (http://stackoverflow.com/questions/602032/getting-java- Bir web sayfası-in-web-tarayıcı- – Suma

cevap

204

Desktop#browse(URI) yöntemini kullanın. Kullanıcının varsayılan tarayıcısında bir URI açar.

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

gui-to-ağ-web-tarayıcı-Netbeans 7.x tarafından oluşturulan JAR dosyaları çalışmak için görünmüyor. Kod, Netbeans'ten çalıştırıldığında çalışır, ancak en azından benim deneyimimde bir JAR dosyası olarak dağıtıldığında değil. Hala bir çözüm arıyorum. – MountainX

+0

@MountainX Hata ayıklama ve masaüstünün desteklendiğini ve bu güvenlik uygulamalarının masaüstü örneğine erişmenizi kısıtlamadığını doğrulayın. JAR'ı bir uygulama olarak çalıştırıyorsanız, güvenlik olası bir suçludur. – Vulcan

+0

@ Vulcan - JAR'ı bir uygulama olarak çalıştırmıyorum. Bunun çalışmasını engelleyecek güvenlik ayarlarından haberdar değilim. Yeni “ProcessBuilder” (“x-www-browser”, uri.toString()); Güvenlik kısıtlamaları varsa, ProcessBuilder çağrısı işe yaramayacağını düşünürdünüz. Ama işe yarıyor. Desktop.browse (uri) 'nin neden çalışmadığı konusunda hiçbir fikrim yok, ancak pek çok insan için işe yaramadığını gördüm. Belki bir Netbeans sorunu olduğunu tahmin ediyordum ama bilmiyorum. – 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) {} 

not: Masaüstü ortamı bulunmayan bir çözüm BrowserLauncher2 olduğunu java.net

4

gerekli ithalat dahil etmek gerekir. Bu çözüm Linux'ta olduğu gibi daha geneldir, Masaüstü her zaman mevcut değildir.

tul cevap Bunu [sınıf için javadocs] (http://docs.oracle.com/javase/7/docs/ bakarak çalışmış olabilir https://stackoverflow.com/a/21676290/873282

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()); 
     } 
    }  
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); 
     } 
    } 
İlgili konular