【问题标题】:Render html in Swing application在 Swing 应用程序中渲染 html
【发布时间】: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?

提前感谢您的帮助。

【问题讨论】:

    标签: java html swing xslt


    【解决方案1】:

    是否有 JEditorPane.setText() 不适合您的原因?

    我一直在使用 JEditorPane,而且我从未从文件或 URL 中提取显示的数据。所以这是可能的。只需要弄清楚为什么它不适合你。

    具体来说:

    editor.setContentType( "text/html" );    
    editor.setText( "<html><body>Hello, world</body></html>" );
    

    【讨论】:

    • 非常感谢。我刚刚错过了这个选项。可能,在查看方法列表时,我下意识地决定它只能处理纯文本并且没有详细检查 javadoc。再次感谢
    • 我认为这些类过于复杂。 JEdi​​torPane 在某个点之外非常糟糕。不幸的是,HTML 渲染的免费选项往往是 LGPL。如果限制比渲染质量更重要,那么 Lobo 浏览器的 Cobra 组件:lobobrowser.org/cobra.jsp 迄今为止最好的 DJ Native Project:djproject.sourceforge.net/ns 它连接 Swing 和 SWT 以访问操作系统的本地浏览器组件。
    • setContentType... 这就是我所缺少的。谢谢@PSpeed
    • 它不接受一些html tags,例如headerfooter
    • 以及在JEditorPane的情况下如何运行javascript?
    【解决方案2】:

    JeditorPane.setText() 呢?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 2011-09-28
      • 2018-08-31
      相关资源
      最近更新 更多