问题描述
|
我正在开发Java桌面应用程序。我需要通过我的应用程序创建HTML页面。当用户单击“在浏览器中查看”按钮时,应创建一个HTML页面,其中包含一些详细信息并将其显示给用户。
有办法吗?在这种情况下,我可以使用任何资源吗?
任何建议都热烈欢迎。
解决方法
import java.awt.Desktop;
import java.io.*;
class ShowGeneratedHtml {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(
new FileReader(\"ShowGeneratedHtml.java\"));
File f = new File(\"source.htm\");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(\"<html>\");
bw.write(\"<body>\");
bw.write(\"<h1>ShowGeneratedHtml source</h1>\");
bw.write(\"<textarea cols=75 rows=30>\");
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
bw.write(\"</text\" + \"area>\");
bw.write(\"</body>\");
bw.write(\"</html>\");
br.close();
bw.close();
Desktop.getDesktop().browse(f.toURI());
}
}
在这台电脑上的结果
, 您应该使用包装ѭ1。
例如,它具有JEditorPane
。它提供HTML 3.2支持。您应该只设置URL的名称,如果有网络连接,就会显示该页面。参见示例。
, 您可以看一下-javax.swing.text.html.HTML.Tag
它提供了一些基本功能。如果还不够,您可以考虑使用JavaServer Pages。
, Flying Saucer库是一个纯Java库,用于呈现XML,XHTML和CSS 2.1内容。由Java Swing团队的成员开始。
, 使用这些库中的任何一个(例如jsoup,wffweb,j2html,jwebutils等)构建html。(从SO引用)并将其写入临时文件,然后调用Desktop.getDesktop().browse(file.toURI());
如果我们使用wffweb可能就是这样
Html html = new Html(null) {{
new Head(this);
new Body(this) {{
new NoTag(this,\"Hello World\");
}};
}};
File tempFile = File.createTempFile(\"temporary_html\",\"html\",new File(\"/home/username/tmpdir\"));
html.toOutputStream(new FileOutputStream(tempFile));
Desktop.getDesktop().browse(tempFile.toURI());