在 Swing 应用程序中渲染 html
Posted
技术标签:
【中文标题】在 Swing 应用程序中渲染 html【英文标题】:Render html in Swing application 【发布时间】:2010-12-19 21:59:18 【问题描述】:我有一个 Swing 应用程序,它向服务器发送命令并接收 XML 格式的结果。我需要通过 XSLT 将其转换为 html,然后在面板上显示结果 HTML。问题是唯一能够显示 HTML 的 Swing 组件 - JEditorPane - 将 URL 或 javax.swing.text.StyledDocument 作为源。 带有 URL 的选项对我不起作用,因为我必须首先将我的 html 作为文件保存在文件系统上,我想避免这种情况。
所以我在 XSL 转换的内存结果和 javax.swing.text.StyledDocument 之间存在差距,可以通过 JEditorPane 或 JTextPane 呈现。
如何将一个转换为另一个?或者是否有任何其他 Swing 解决方案来显示来自某些内存源(DOM 或 String 或其他)的 HTML?
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:是否有 JEditorPane.setText() 不适合您的原因?
我一直在使用 JEditorPane,而且我从未从文件或 URL 中提取显示的数据。所以这是可能的。只需要弄清楚为什么它不适合你。
具体来说:
editor.setContentType( "text/html" );
editor.setText( "<html><body>Hello, world</body></html>" );
【讨论】:
非常感谢。我刚刚错过了这个选项。可能,在查看方法列表时,我下意识地决定它只能处理纯文本并且没有详细检查 javadoc。再次感谢 我认为这些类过于复杂。 JEditorPane 在某个点之外非常糟糕。不幸的是,HTML 渲染的免费选项往往是 LGPL。如果限制比渲染质量更重要,那么 Lobo 浏览器的 Cobra 组件:lobobrowser.org/cobra.jsp 迄今为止最好的 DJ Native Project:djproject.sourceforge.net/ns 它连接 Swing 和 SWT 以访问操作系统的本地浏览器组件。setContentType
... 这就是我所缺少的。谢谢@PSpeed
它不接受一些html tags
,例如header
,footer
等
以及在JEditorPane
的情况下如何运行javascript?【参考方案2】:
JeditorPane.setText()
呢?
【讨论】:
以上是关于在 Swing 应用程序中渲染 html的主要内容,如果未能解决你的问题,请参考以下文章