jEditorPane作为一个Web浏览器

10

我正在使用Java创建一个Web浏览器。在这个浏览器中,我正在使用JEditorPane作为浏览器窗口。我正在使用"setPage(String url)"方法来显示页面。该浏览器可以显示页面,但存在以下问题:

  1. 浏览器无法显示JavaScript。
  2. 它无法显示小程序。
  3. 浏览数据未以正确的方式显示(如浏览器所示alt text)。

我的代码如下-

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
@lucasrizoli:我相信他的意思是渲染还远远不够完美。 - Denis Tulskiy
4个回答

7
JEditorPane具有有限的HTML和CSS支持。它不支持JavaScript或Applet。它不适用于用作Web浏览器。Sun承诺推出更接近浏览器的JWebPane,但从未发布。
如果您真的想在Java中实现浏览器,请加入像Lobo browser这样的开源Java浏览器项目。这样,您可以将知识应用到正确的方向上。没有必要从头开始做。

2
JEditorPane只能呈现非常基础的HTML。(即使在SE6版本中,它只能理解1997年的HTML 3.2标准!)JEditorPane无法嵌入applet或Flash,也无法解释JavaScript。
事实上,JEditorPane是编写用于编辑富文本的小部件(即具有简单格式(如粗体和斜体)的不同大小的文本),而不是用于呈现HTML、CSS等内容。
您可能想尝试JDIC的可嵌入浏览器

1

JavaFX似乎可以处理这个问题。这个方案已经尝试过了吗?


JavaFX在当前浏览器的兼容性状态与其他所有浏览器相当。 - Panayotis

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接