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>
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.
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.
Enclose your entire string within html tags.
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>";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With