2012-09-22 34 views
1

我以Java swing形式显示Html文件数据。内容正在显示,但某些格式化受到干扰。图像正在显示,但格式化受到干扰。 和超链接无法正常工作,你可以建议我的代码,我使用下面的代码。 有毛病的setContentType方法在java swing中浏览html文件

File htmlFile = new File("e:/test/help4t.htm"); 
      htmlPane = new JEditorPane(); 
      htmlPane.setContentType("text/html"); 
     htmlPane.setPage(htmlFile.toURI().toURL()); 
     //URL url= new URL("http://www.lawcrux.com"); 


     // htmlPane.setPage(url); 
     htmlPane.addHyperlinkListener(this); 

     JScrollPane jsp= new JScrollPane(htmlPane); 

       cp.add(jsp); 
     jsp.setBounds(750, 50, 600, 600); 


     } catch (Exception ex) { 
     JOptionPane.showMessageDialog(null, "exception is" + ex); 
     } 

请帮助

问候

+1

它是(花哨)'http:// www.lawcrux.com /'或者您控制的本地磁盘上的HTML,或者其他您希望显示给最终用户的HTML吗? 'JEditorPane'永远不会呈现该页面(幸运的)或基于JS的日历的基于JS的滚动文本/链接部分。 –

+0

Html文件存储在本地系统上。有没有另一种方法来呈现基于JS的链接和文本 – adesh

+0

我认为JavaFX应该提供一个Web组件。 –

回答

2

你为什么不使用Jsoup为它提供了一个非常方便的API为提取和操作数据。

请参阅此链接:

http://jsoup.org/

3

好以及JEditorPane最多只支持HTML 3.2。

即使有上述说法,我不会重新推荐使用任何库(或者你自己的 - 除非你的项目是这样的)来帮助你。看看(纯Java库):

  • The Lobo Project(路宝项目旨在开发一种可扩展的浏览器和RIA平台,完全用Java编写的,不仅支持HTML和Javascript,而且还使任意丰富的渲染互联网应用(RIA)语言)

  • Ekit(Ekit是一个免费的开源Java HTML编辑器应用程序和应用程序,Ekit独立版也允许加载和保存HTML,以及序列化并保存为RTF。它正在接近其首个量产版本。)

  • The DJ Project(NativeSwing库允许将一些本地组件轻松集成到Swing应用程序中,并提供一些本地实用程序来增强Swing的API。它由一个框架库和一个基于SWT的实现组成,它提供了许多丰富的组件。 这种基于SWT-实现的关键部件当然是丰富的Web浏览器和Flash播放器,但它也提供了多媒体播放器,HTML编辑器和语法高亮)。

  • CSSBox(CSSBox是( X)以纯Java编写的HTML/CSS渲染引擎,其主要目的是提供关于所呈现的页面内容和布局的完整且可进一步处理的信息,但它也允许显示所呈现的文档)。不过免费)