在Swing应用程序中渲染HTML

11

我有一个Swing应用程序,它通过XML格式向服务器发送命令并接收结果。我需要通过XSLT将其转换为HTML,并在面板上显示结果HTML。问题在于,唯一能够显示HTML的Swing组件JEditorPane只接受URL或javax.swing.text.StyledDocument作为源。

URL选项对我不起作用,因为我必须先将我的HTML保存为文件,并且我想避免这种情况。因此,在内存中进行XSL转换的结果和可由JEditorPane或JTextPane呈现的javax.swing.text.StyledDocument之间存在差距。

如何将一个转换为另一个?或者是否有其他Swing解决方案可以从某个内存源(DOM或String或其他)显示HTML?

非常感谢您的帮助。

2个回答

17

JEditorPane.setText()为什么不起作用呢?

我经常使用JEditorPane,但从未从文件或URL中提取显示的数据。所以这是可能的。只需要找出为什么你的方法不起作用。

具体来说:

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

非常感谢。我刚刚错过了这个选项。可能是在查看方法列表时,我下意识地认为它只能处理纯文本,并没有详细查看javadoc。再次感谢。 - Maksym Govorischev
这些类我认为过于复杂了。JEditorPane在某个程度上表现相当糟糕。不幸的是,用于HTML渲染的免费选项往往是LGPL。如果限制条件比呈现质量更不重要,那么可以使用Lobo Browser的Cobra组件:http://lobobrowser.org/cobra.jsp。而迄今为止最好的是DJ Native Project:http://djproject.sourceforge.net/ns/。它桥接了Swing和SWT以访问操作系统的本地浏览器组件。 - PSpeed
1
setContentType... 这就是我所缺少的。谢谢 @PSpeed - Xynariz
它不接受一些像headerfooter等的html标签 - Inzimam Tariq IT
JEditorPane中如何运行JavaScript? - Inzimam Tariq IT

2

那么 JeditorPane.setText() 怎么样?


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