كيف تفتح صفحات الويب في جافا؟
سؤال
هل هناك طريقة بسيطة لفتح صفحة ويب داخل JPanel في واجهة المستخدم الرسومية؟
إذا لم يكن الأمر كذلك، فكيف تفتح صفحة ويب بمتصفح الويب الافتراضي للكمبيوتر؟
آمل أن أفعل شيئا ما يمكنني القيام به بموجب 20 خطا من التعليمات البرمجية، وعلى الأكثر تحتاج إلى إنشاء فئة واحدة. لا يوجد سبب لمدة 20 رغم ذلك، فقط على أمل وجود رمز صغير ...
أخطط لفتح دليل للذهاب مع لعبة. الدليل عبر الإنترنت ولديه صفحات متعددة، لكن الصفحات تصل إلى بعضها البعض، لذلك آمل أن أطلب فقط الاتصال بعنوان URL مع التعليمات البرمجية.
المحلول
فتح صفحة ويب مع متصفح الويب الافتراضي سهل:
java.awt.Desktop.getDesktop().browse(theURI);
تضمين المتصفح ليس بالأمر السهل جدا. JEditorPane
لديها بعض قدرة HTML (إذا كنت أتذكر معرفتي المتأرجح المحدود بشكل صحيح)، لكنها محدودة للغاية وغير قابلة للقياس لمتصفح الأغراض العامة.
نصائح أخرى
هناك طريقتان قياسيين أعرفه من:
- المعيار
JEditorPane
عنصر Desktop
.getDesktop()
.browse(URI)
لفتح المتصفح الافتراضي للمستخدم (Java 6 أو إصدار أحدث)قريبا، سيكون هناك أيضا ثالث:
- ال
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();
}