jEditorPane 作为网络浏览器

Posted

技术标签:

【中文标题】jEditorPane 作为网络浏览器【英文标题】:jEditorPane as a web browser 【发布时间】:2011-05-08 10:00:18 【问题描述】:

我正在用 Java 创建一个 Web 浏览器。在这个浏览器中我正在使用 浏览器窗口的 JEditorPane。我正在使用“setPage(String url)”方法 显示页面。浏览器可以显示页面但是有 上面提到的一些问题::

    浏览器不显示 java 脚本。 它没有显示小程序。 浏览数据没有以正确的方式显示(例如作为浏览器(在图像中显示))。

我的代码是-

JEditorPane editorPane = new JEditorPane();
String url="http://google.co.in";    
editorPane.setEditable(false);
  try 
        editorPane.setPage(url);
   catch (IOException e) 
      System.err.println("Attempted to read a bad URL: " + url);
  

【问题讨论】:

我不太明白你遇到的第三个问题。也许你可以改写它。 @lucasrizoli:我相信他的意思是渲染远非完美。 【参考方案1】:

JEditorPane 对 html 和 css 的支持有限。它不支持 javascript 或小程序。它不打算用作网络浏览器。 Sun 承诺会推出更接近浏览器的 JWebPane,但它从未发布过。

如果你真的愿意用java实现浏览器,加入一些开源的java浏览器项目,比如Lobo browser。这样,您就可以将您的知识应用于正确的方向。从头开始没有意义。

【讨论】:

【参考方案2】:

JEditorPane 只能呈现非常基本的 HTML。 (即使从 SE6 开始,它也只能理解 HTML 3.2——1997 年的标准!)JEditorPane 不能嵌入小程序或 Flash,也不能解释 JavaScript。

事实上,JEditorPane 被编写为一个小部件,用于编辑富文本(即具有简单格式的不同大小的文本,如粗体和斜体),而不是用于呈现 HTML、CSS 等的东西。

您可能想改用JDIC's embeddable browser。

【讨论】:

【参考方案3】:

您尝试过 SWT 吗?它使用系统默认浏览器,或者我相信您可以指定 Mozilla 或 Apple 的浏览器(我不是 Apple 粉丝,现在想不出名字)。它不是从头开始编码的,他们必须安装另一个浏览器,但在 Java 中,我认为这是你最好的选择。您可以通过简单的 google 搜索找到同时包含 Swing 和 SWT 的各种库,因此您不必在两者之间进行选择。

【讨论】:

【参考方案4】:

JavaFX 似乎可以处理这个问题。这个试过了吗?

【讨论】:

目前JavaFX中浏览器的兼容性状况与所有其他浏览器相当。

以上是关于jEditorPane 作为网络浏览器的主要内容,如果未能解决你的问题,请参考以下文章

Java - JEditorPane 的 HTML5 替代品

支持 Javascript 和 CSS 的 JEditorPane

在 JEditorPane 中渲染数学符号的问题

TensorFlow 神经网络作为 API?

网络协议和浏览器到网络简单攻防实现的探索

调试/运行网站时如何更改默认网络浏览器?