我正在编写一个也由 HTML 组成的 Java 代码。我只想预览该 HTML 代码JFrame。Java API 中是否有可用的解决方案?
你能指导我解决这个问题吗?
我正在编写一个也由 HTML 组成的 Java 代码。我只想预览该 HTML 代码JFrame。Java API 中是否有可用的解决方案?
你能指导我解决这个问题吗?
是的。可以显示JEditorPane(简单)HTML。有关更多详细信息,请参阅本JEditorPane教程。
JEditorPane支持HTML 3.2元素的子集以及简单样式 (CSS)。虽然这个任务可以使用 CSS 来完成,但 HTML 3.2 的 body 元素也接受一个bgcolor.

import java.awt.Dimension;
import javax.swing.*;
class WebPageWithBackground {
WebPageWithBackground() {
String html = "<html><body bgcolor='#ffbb99'>Hi!";
JEditorPane jep = new JEditorPane();
jep.setContentType("text/html");
jep.setText(html);
jep.setPreferredSize(new Dimension(400,50));
JOptionPane.showMessageDialog(null, jep);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new WebPageWithBackground();
}
});
}
}
实际上,几乎每个可以在某处显示自定义用户文本的 Swing 组件都允许使用 HTML 而不是文本。例如 JButton 文本、JTabbedPane 选项卡标题、JTable 单元格/标题、JLabel 文本、JList/JTree/JComboBox 单元格渲染器、组件工具提示等。
要在其中任何一个中使用 HTML - 只需<html>在文本的开头添加标签 - 这足以让视图解析器知道您在其中有一些 HTML。
此外,Java 支持的 HTML 也相当陈旧,大多数新功能都无法使用,因为您可以在现代浏览器或可视化编辑器中看到它们。但它仍然足以在您需要的地方创建一些高级组件内容。
还有一件事——如果你想在 HTML 中显示一些本地图像,你必须更改组件的基本位置,以便它可以正确加载它们:
component.putClientProperty (
BasicHTML.documentBaseKey,
new File ( "/local/path/" ).toURI ().toURL ()
);
一些正确的 URL 应该在该键下(本地或远程)。