2012-06-10 15 views
86

मैं एक बटन क्लिक के साथ डिफ़ॉल्ट ब्राउज़र में लिंक कैसे खोल सकते हैं,जावा बटन के साथ ब्राउज़र में एक लिंक खोलें?

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

की तर्ज पर?

+2

पर पोस्ट किया जाता है आपको कम से [वर्ग के लिए Javadocs] (http://docs.oracle.com/javase/7/docs/ देख कोशिश की है हो सकता है एपीआई/जावा/awt/Desktop.html) जिसका उपयोग आपके [अंतिम प्रश्न] के स्वीकृत उत्तर में किया जाता है (http://stackoverflow.com/questions/10966999/how-to-make-a-button-that-when- क्लिक किया-खोलता-AppData-निर्देशिका)! वो दस्तावेज़ बहुत आसान हैं, या तो उन्हें आपको आईडीई संलग्न करें या ऑन-लाइन संस्करण बुकमार्क करें। –

+0

डुप्लिकेट प्रश्न: http://stackoverflow.com/q/5226212/873282 – koppor

+1

संभावित डुप्लिकेट [वेब ब्राउज़र में वेबपृष्ठ खोलने के लिए जावा गुई प्राप्त करना] (http://stackoverflow.com/questions/602032/getting-java- gui-to-open-a-webpage-in-web-browser) – Suma

उत्तर

204

Desktop#browse(URI) विधि का उपयोग करें। यह उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र में एक यूआरआई खोलता है।

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

यह Netbeans 7.x द्वारा बनाए गए JAR फ़ाइलों में काम नहीं करता है। यह तब काम करता है जब कोड नेटबीन्स से चलाया जाता है, लेकिन जब एक जेएआर फ़ाइल के रूप में तैनात नहीं किया जाता है ... कम से कम मेरे अनुभव में। मैं अभी भी एक समाधान की तलाश में हूँ। – MountainX

+0

@MountainX डीबग और सत्यापित करें कि डेस्कटॉप समर्थित है और सुरक्षा कार्यान्वयन आपको डेस्कटॉप इंस्टेंस तक पहुंचने से प्रतिबंधित नहीं कर रहा है। यदि आप एक एप्लेट के रूप में जार चला रहे हैं, तो सुरक्षा संभावित अपराधी है। – Vulcan

+0

@ वल्कन - मैं एक एप्लेट के रूप में जार नहीं चला रहा हूं। मुझे किसी भी सुरक्षा सेटिंग्स से अवगत नहीं है जो इसे काम करने से रोक देगा। मैंने 'नया प्रोसेसबिल्डर ("एक्स-www-browser", uri.toString()) को कॉल करके "चारों ओर काम किया"; '। आपको लगता है कि यदि सुरक्षा प्रतिबंध थे, तो Processbuilder कॉल काम नहीं करेगा। लेकिन यह काम करता है। मुझे नहीं पता कि क्यों 'desktop.browse (uri)' काम नहीं करता है, लेकिन मैंने देखा है कि यह बहुत से लोगों के लिए काम नहीं करता है। मैं अनुमान लगा रहा था कि यह नेटबीन मुद्दा है, लेकिन मुझे नहीं पता। – 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) {} 

ध्यान दें: आप से java.net

4

डेस्कटॉप वातावरण के बिना एक समाधान BrowserLauncher2 है आवश्यक आयात शामिल करने के लिए की है। यह समाधान लिनक्स पर अधिक सामान्य है, डेस्कटॉप हमेशा उपलब्ध नहीं है।

lenghty जवाब 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); 
     } 
    }