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

jad*_*jan 6 html java swing joptionpane

出于某些奇怪的原因,当我尝试使用HTML时JOptionPane,会打印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);
Run Code Online (Sandbox Code Playgroud)

输出是:

Please fix <HTML><BODY BGCOLOR=#FFCCCC>this</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)

mre*_*mre 17

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

button = new JButton("<html><b><u>T</u>wo</b><br>lines</html>");
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅如何在Swing组件中使用HTML.


Rob*_*ing 9

另外值得一提的是:它似乎在你的字符串换行符触发JOptionPane使字符串作为HTML,而如JLabel 容许的HTML换行.


Ran*_*Rag 5

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


DZi*_*eyn 5

<HTML></HTML>标签中指定输入是在HTML中。如果要在Swing组件中使用HTML,则它们要么不是HTML,要么完全是HTML。您可以使用<FONT>标签来更改文本的背景。将文本包含在<P>标签中可能也比较整洁,但这更多是关于品味的问题。

尝试使用

String msg = "<HTML><BODY><P>Please fix <FONT style="BACKGROUND-COLOR: #FFCCCC"> this</FONT></P></BODY></HTML>";
Run Code Online (Sandbox Code Playgroud)