本文目录导读:

根据您提供的关键词 JEditorPane、HTMLEditorKit、Parser、Random 和 随机数,我推测您可能想要实现以下功能之一:
- 在 JEditorPane 中显示包含随机数的 HTML 内容
- 解析 HTML 并提取其中的随机数
- 动态生成包含随机数的 HTML 并显示
下面我将针对最常见的场景(在 JEditorPane 中生成并显示包含随机数的 HTML)提供一个完整的 Java 示例。
Java Swing 示例:在 JEditorPane 中显示带随机数的 HTML
import javax.swing.*;
import javax.swing.text.html.HTMLEditorKit;
import java.awt.*;
import java.util.Random;
public class JEditorPaneRandomExample {
public static void main(String[] args) {
// 创建窗口
JFrame frame = new JFrame("JEditorPane 随机数示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 400);
// 创建 JEditorPane
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
editorPane.setContentType("text/html");
// 使用 HTMLEditorKit 增强 HTML 渲染
HTMLEditorKit kit = new HTMLEditorKit();
editorPane.setEditorKit(kit);
// 生成包含随机数的 HTML 内容
String htmlContent = generateHtmlWithRandomNumbers();
// 设置 HTML 内容
editorPane.setText(htmlContent);
// 添加到窗口
frame.add(new JScrollPane(editorPane), BorderLayout.CENTER);
frame.setVisible(true);
}
/**
* 生成包含随机数的 HTML 内容
*/
private static String generateHtmlWithRandomNumbers() {
Random random = new Random();
// 生成几个随机数
int randomInt = random.nextInt(1000);
double randomDouble = 1.0 + (random.nextDouble() * 99.0); // 1.0 ~ 100.0
int randomDice = random.nextInt(6) + 1; // 1~6 骰子点数
StringBuilder html = new StringBuilder();
html.append("<html><body style='font-family: Arial, sans-serif; padding: 20px;'>");
html.append("<h2 style='color: #2c3e50;'>随机数生成器</h2>");
html.append("<hr>");
html.append("<p><strong>随机整数 (0-999):</strong> <span style='color: #27ae60; font-size: 18px;'>")
.append(randomInt).append("</span></p>");
html.append("<p><strong>随机小数 (1.0-100.0):</strong> <span style='color: #2980b9; font-size: 18px;'>")
.append(String.format("%.2f", randomDouble)).append("</span></p>");
html.append("<p><strong>骰子点数 (1-6):</strong> <span style='color: #e74c3c; font-size: 24px;'>🎲 ")
.append(randomDice).append("</span></p>");
html.append("<hr>");
html.append("<p style='color: #7f8c8d; font-size: 12px;'>页面刷新时间: ")
.append(new java.util.Date()).append("</p>");
html.append("</body></html>");
return html.toString();
}
}
关键点说明
JEditorPane + HTMLEditorKit
JEditorPane是 Swing 中的轻量级 HTML 渲染组件HTMLEditorKit提供更完善的 HTML 解析和渲染能力(支持 CSS、表格等)
随机数生成
- 使用
java.util.Random类生成各类随机数 nextInt(n)生成 0 到 n-1 的随机整数nextDouble()生成 0.0 到 1.0 的双精度浮点数
HTML 拼接
- 将随机数直接插入到 HTML 字符串中
- 可以使用 CSS 样式美化显示效果
扩展功能
如果您想实现点击按钮刷新随机数,可以这样修改:
// 添加刷新按钮
JButton refreshButton = new JButton("刷新随机数");
refreshButton.addActionListener(e -> {
editorPane.setText(generateHtmlWithRandomNumbers());
});
frame.add(refreshButton, BorderLayout.SOUTH);
注意事项
- JEditorPane 对 HTML 的支持有限(HTML 3.2 + 部分 CSS)
- 复杂页面建议使用 JavaFX 的 WebView
- 如果需要处理大量随机数或复杂交互,考虑使用 JavaFX
希望这个示例对您有帮助!如果有其他具体需求,欢迎进一步说明。