Когда я пытаюсь использовать HTML с `JOptionPane`, вместо форматирования HTML печатаются HTML-теги. - PullRequest
5 голосов
/ 30 января 2012

По какой-то странной причине, когда я пытаюсь использовать 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);

и вывод:

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

Ответы [ 4 ]

16 голосов
/ 30 января 2012

Вся строка должна быть заключена в теги HTML.Например:

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

Для получения дополнительной информации см. Как использовать HTML в компонентах Swing .

9 голосов
/ 31 мая 2014

Также стоит отметить: кажется, что при наличии новой строки в вашей строке триггеры JOptionPane до не отображают строку как HTML, тогда как, например, JLabel разрешает перевод новых строк в HTML.

5 голосов
/ 30 января 2012

Заключите всю строку в HTML-теги.

4 голосов
/ 30 января 2012

Теги <HTML> и </HTML> указывают, что ввод осуществляется в HTML.Если вы хотите использовать HTML в компонентах Swing, они должны быть либо не HTML, либо полностью HTML.Вы можете изменить фон текста с помощью тега <FONT>. Также может быть лучше заключить текст в теги <P>, но это больше вопрос вкуса.

Попробуйте использовать

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