When I try to use HTML with `JOptionPane`, HTML tags are printed instead of HTML formatting
Solution 1
The entire string needs to be enclosed within the HTML tags. For example:
button = new JButton("<html><b><u>T</u>wo</b><br>lines</html>");
For more information, see How to Use HTML in Swing Components.
Solution 2
Also worth noting: it seems that having a newline in your string triggers JOptionPane
to not render the string as HTML, whereas e.g. JLabel
does allow newlines in the HTML.
Solution 3
Enclose your entire string within html tags.
Solution 4
The <HTML>
and </HTML>
tag specify that the input is in HTML. If you want to use HTML in Swing components, they have to either not be HTML, or be entirely in HTML. You can change the background of text by using the <FONT>
tag, It might also be neater to enclose your text in <P>
tags, but that's more a question of taste.
Try using
String msg = "<HTML><BODY><P>Please fix <FONT style="BACKGROUND-COLOR: #FFCCCC"> this</FONT></P></BODY></HTML>";
Comments
-
jadrijan almost 2 years
For some weird reason when I try to use HTML with
JOptionPane
, HTML tags are printed instead of HTML formatting.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);
and the output is:
Please fix <HTML><BODY BGCOLOR=#FFCCCC>this</BODY></HTML>
-
dimeros over 6 yearsIn other words, replace the \n with the <br> within the html tags.