سؤال

هل هناك طريقة بسيطة لفتح صفحة ويب داخل JPanel في واجهة المستخدم الرسومية؟

إذا لم يكن الأمر كذلك، فكيف تفتح صفحة ويب بمتصفح الويب الافتراضي للكمبيوتر؟

آمل أن أفعل شيئا ما يمكنني القيام به بموجب 20 خطا من التعليمات البرمجية، وعلى الأكثر تحتاج إلى إنشاء فئة واحدة. لا يوجد سبب لمدة 20 رغم ذلك، فقط على أمل وجود رمز صغير ...

أخطط لفتح دليل للذهاب مع لعبة. الدليل عبر الإنترنت ولديه صفحات متعددة، لكن الصفحات تصل إلى بعضها البعض، لذلك آمل أن أطلب فقط الاتصال بعنوان URL مع التعليمات البرمجية.

هل كانت مفيدة؟

المحلول

فتح صفحة ويب مع متصفح الويب الافتراضي سهل:

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

تضمين المتصفح ليس بالأمر السهل جدا. JEditorPane لديها بعض قدرة HTML (إذا كنت أتذكر معرفتي المتأرجح المحدود بشكل صحيح)، لكنها محدودة للغاية وغير قابلة للقياس لمتصفح الأغراض العامة.

نصائح أخرى

هناك طريقتان قياسيين أعرفه من:

  1. المعيار JEditorPane عنصر
  2. Desktop.getDesktop().browse(URI) لفتح المتصفح الافتراضي للمستخدم (Java 6 أو إصدار أحدث)

    قريبا، سيكون هناك أيضا ثالث:

  3. ال JWebPane مكون، الذي لم يتم إصداره بعد

JEditorPane عظام عارية جدا. لا تتعامل مع CSS أو JavaScript، وعليك أن تتعامل مع الارتباطات التشعبية بنفسك. ولكن يمكنك تضمينها في طلبك أكثر بسلاسة من إطلاق فايرفوكس سيكون.

إليك عينة من كيفية استخدام الارتباطات التشعبية (على افتراض أن المستندات لا تستخدم الإطارات):

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

إذا كنت تقوم بتطوير تطبيق صغير، يمكنك استخدامه AppletContext.showdocument.. وبعد سيكون ذلك بطانة واحدة:

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

إذا كنت تقوم بتطوير تطبيق سطح المكتب، فقد تحاول إطلاق مستعرض العظام العارية.

لم جربها على الإطلاق، ولكن كوبرا HTML محلل ومشادف من متصفح Lobo., ، قد يكون المتصفح الذي كتب في جافا النقي، ما عليك. أنها توفر نموذج التعليمات البرمجية لإعداد عارض HTML عبر الإنترنت:

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");
  }
}

لا أعرف إذا كان هذا مضمنا موجودا، لكنني سأستخدم مدة العرض فئة exec. مع Iexplore.exe أو Firefox.exe كوسيطة.

يرجى المحاولة أدناه الرمز:

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();
} 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top