当我尝试将 HTML 与 `JOptionPane` 一起使用时,会打印 HTML 标签而不是 HTML 格式

Posted

技术标签:

【中文标题】当我尝试将 HTML 与 `JOptionPane` 一起使用时,会打印 HTML 标签而不是 HTML 格式【英文标题】:When I try to use HTML with `JOptionPane`, HTML tags are printed instead of HTML formatting 【发布时间】:2012-02-22 12:49:52 【问题描述】:

由于某些奇怪的原因,当我尝试将 htmlJOptionPane 一起使用时,会打印 HTML 标记而不是 HTML 格式。

String msg = "Please fix <HTML><BODY BGCOLOR=#FFCCCC>this</BODY></HTML>";
JLabel message = new JLabel(msg);
JOptionPane.showMessageDialog(MyApp.this, message, "Error!", JOptionPane.ERROR_MESSAGE);

输出是:

Please fix <HTML><BODY BGCOLOR=#FFCCCC>this</BODY></HTML>

【问题讨论】:

【参考方案1】:

整个字符串需要包含在 HTML 标记中。例如:

button = new JButton("<html><b><u>T</u>wo</b><br>lines</html>");

有关详细信息,请参阅How to Use HTML in Swing Components。

【讨论】:

【参考方案2】:

另外值得注意的是:似乎在你的字符串中有一个换行符会触发JOptionPane not 将字符串呈现为 HTML,而例如JLabel 允许 HTML 中的换行符。

【讨论】:

换句话说,将\n替换为html标签中的。【参考方案3】:

将整个字符串包含在 html 标记中。

【讨论】:

【参考方案4】:

&lt;HTML&gt;&lt;/HTML&gt; 标记指定输入是 HTML。如果你想在 Swing 组件中使用 HTML,它们要么不是 HTML,要么完全是 HTML。您可以使用&lt;FONT&gt; 标签更改文本的背景,将您的文本包含在&lt;P&gt; 标签中可能会更整洁,但这更多的是品味问题。

尝试使用

String msg = "<HTML><BODY><P>Please fix <FONT style="BACKGROUND-COLOR: #FFCCCC"> this</FONT></P></BODY></HTML>";

【讨论】:

以上是关于当我尝试将 HTML 与 `JOptionPane` 一起使用时,会打印 HTML 标签而不是 HTML 格式的主要内容,如果未能解决你的问题,请参考以下文章

为啥 JOptionPane 中的 JScrollPane 不显示其所有内容?

无按钮上的JOptionPane关闭框架[重复]

在JOptionPane中对齐文本

如何处理 JOptionPane 中的取消按钮

JOptionPane 是或否窗口

使 JOptionPane 消息对话框在渲染后消失