2009-04-14 10 views
12

क्या जीयूआई के जेपीनल के भीतर एक वेब पेज खोलने का कोई आसान तरीका है?आप जावा में वेब पेज कैसे खोलते हैं?

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

मैं कुछ ऐसी चीज की उम्मीद कर रहा हूं जो मैं कोड की 20 पंक्तियों के साथ कर सकता हूं, और अधिकतर एक वर्ग बनाने की आवश्यकता होगी। हालांकि 20 के लिए कोई कारण नहीं, बस थोड़ा कोड की उम्मीद है ...

मैं एक गेम के साथ जाने के लिए एक गाइड खोलने की योजना बना रहा हूं। गाइड ऑनलाइन है और इसमें कई पेज हैं, लेकिन पेज एक दूसरे से लिंक हैं, इसलिए मुझे आशा है कि मुझे केवल अपने कोड के साथ एक यूआरएल कॉल करना होगा।

+1

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

+0

यह भी देखें http://stackoverflow.com/questions/6360744/how-to-render-basic -html-markup-inside-a-jpanel-in-java-swing –

उत्तर

26

डिफ़ॉल्ट वेब ब्राउज़र के साथ एक वेब पेज खुलने आसान है:

java.awt.Desktop.getDesktop().browse(theURI); 

एक ब्राउज़र एम्बेड इतना आसान नहीं है। JEditorPane में कुछ एचटीएमएल क्षमता (अगर मुझे अपने सीमित स्विंग-ज्ञान को सही तरीके से याद है), लेकिन यह बहुत ही सीमित है और एक सामान्य उद्देश्य ब्राउज़र के लिए उपयुक्त नहीं है।

+0

डेस्कटॉप एपीआई केवल जावा 1.6 – dfa

+7

@dfa के लिए है: तो? पहले कुछ भी करने की आवश्यकता नहीं थी और अद्यतित एपीआई का उपयोग करना उचित है। –

+2

ध्यान दें कि यदि आपका यूआरआई एक स्ट्रिंग है, तो आपको इसे 'new java.net.URI (URI)' से लपेटने की आवश्यकता है। –

2

वहाँ दो मानक तरीके कि मैं के बारे में पता कर रहे हैं:

  1. मानक JEditorPane घटक
  2. DesktopgetDesktop()browse(URI)

    जल्द ही उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र (जावा 6 या बाद में) खोलने के लिए, वहाँ भी हो जाएगा एक तिहाई:

  3. JWebPane घटक है, जो जाहिरा तौर पर अभी तक

JEditorPane नहीं जारी की गई है बहुत है सिर्फ हड्डियां; यह सीएसएस या जावास्क्रिप्ट को संभाल नहीं करता है, और आपको खुद को हाइपरलिंक्स को संभालना होगा। लेकिन आप फ़ायरफ़ॉक्स लॉन्च करने से इसे अपने एप्लिकेशन में अधिक सहजता से एम्बेड कर सकते हैं।

यहाँ कैसे हाइपरलिंक उपयोग करने के लिए (अपने दस्तावेज़ों संभालने फ्रेम का इस्तेमाल नहीं करते हैं) का एक नमूना है:

// ... initialize myEditorPane 
myEditorPane.setEditable(false); // to allow it to generate HyperlinkEvents 
myEditorPane.addHyperlinkListener(new HyperlinkListener() { 
    public void hyperlinkUpdate(HyperlinkEvent e) { 
     if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) { 
      myEditorPane.setToolTipText(e.getDescription()); 
     } else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) { 
      myEditorPane.setToolTipText(null); 
     } else if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { 
      try { 
       myEditorPane.setPage(e.getURL()); 
      } catch (IOException ex) { 
       // handle error 
       ex.printStackTrace(); 
      } 
     } 
    } 
}); 
+0

बस उत्सुक है, लेकिन मैं इस जवाब को कैसे सुधार सकता हूं? –

+0

सौआ ने कहा "जेडिटरपेन में कुछ एचटीएमएल क्षमता है, लेकिन यह बहुत ही सीमित है और एक सामान्य उद्देश्य ब्राउज़र के लिए उपयुक्त नहीं है।" तो मैं बस कोड की पोस्ट की अधिक सरल एक पंक्ति के साथ गया था ... मैं कुछ बहुत अच्छी लग रही चीज़ के लिए नहीं जा रहा था, मैं बस कुछ ऐसा करने की कोशिश कर रहा हूं जो –

+0

काम करता है, मैं शायद बाद में अपना कोड आजमाऊंगा, लेकिन मैंने इसे चलाने की कोशिश नहीं की ... इसलिए मैं यह क्लिक नहीं करना चाहता था कि यह एक जवाब था क्योंकि मुझे वास्तव में –

-1

अगर इस तरह के एक अंतर्निहित मौजूद है मैं नहीं जानता, लेकिन मैं Runtime वर्ग के प्रयोग करेंगे निष्पादन के रूप में iexplore.exe या firefox.exe के साथ निष्पादित करें।

+0

यदि आप इसे रनटाइम के साथ करते हैं तो आपको यह जानना होगा कि उपयोगकर्ता किस ब्राउज़र को चलाता है। शायद सबसे अच्छा विकल्प –

+0

तो आप 3 ब्राउज़रों की उपस्थिति की जांच करें। मैंने कभी नहीं कहा कि यह सबसे अच्छा विकल्प था। – Geo

0

यदि आप एक एप्लेट विकसित कर रहे हैं, तो आप AppletContext.showDocument का उपयोग कर सकते हैं।

getAppletContext().showDocument("http://example.com", "_blank"); 

आपको डेस्कटॉप एप्लिकेशन विकसित कर रहे हैं, तो आप Bare Bones Browser Launch कोशिश कर सकते हैं: यह एक एक लाइनर होगा।

0

ने इसे बिल्कुल भी कोशिश नहीं की है, लेकिन से cobra HTML parser and viewer, शुद्ध जावा में लिखे गए ब्राउज़र, हो सकता है कि आप बाद में हो।

import javax.swing.*; 
import org.lobobrowser.html.gui.*; 
import org.lobobrowser.html.test.*; 

public class BareMinimumTest { 
    public static void main(String[] args) throws Exception { 
    JFrame window = new JFrame(); 
    HtmlPanel panel = new HtmlPanel(); 
    window.getContentPane().add(panel); 
    window.setSize(600, 400); 
    window.setVisible(true); 
    new SimpleHtmlRendererContext(panel, new SimpleUserAgentContext()) 
    .navigate("http://lobobrowser.org/browser/home.jsp"); 
    } 
} 
-2

कोड के नीचे का प्रयास करें:: वे एक ऑनलाइन एचटीएमएल दर्शक स्थापित करने के लिए नमूना कोड प्रदान

import java.awt.Desktop; 
import java.net.URI; 
import java.net.URISyntaxExaception; 

//below is the code 
//whatvever the url is it has to have https:// 

Desktop d = Desktop.getDesktop(); 
try { 
    d.browse(new URI("http://google.com")); 
} catch (IOException | URISyntaxException e2) { 
    e2.printStackTrace(); 
}