如何让Swing的JOptionPane兼容含换行符的HTML内容?
如何让Swing的JOptionPane兼容含换行符的HTML内容?
我最近碰到个头疼的问题:想让Swing的JOptionPane正常处理带换行符的HTML内容,可试了几次都不对劲。
比如下面这段代码,能正常弹出显示Hello,和我预期的完全一致:
package demos.dialog.optionPane; import javax.swing.JOptionPane; public class JOptionPaneDemo { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "<html>Hello</html>"); } }
但只要在HTML标签里加个换行符,就出问题了——下面这段代码运行后,弹窗显示的居然是Hello</html>,完全不符合预期:
package demos.dialog.optionPane; import javax.swing.JOptionPane; public class JOptionPaneDemo { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "<html>\nHello</html>"); } }

这里要说明下:这些HTML文本是从数据库里读取的,我没办法提前干预去掉换行符。而且按照HTML的规范,这类空白字符在渲染时本来就应该被忽略,我试了在线的HTML编辑器,人家都能正常解析带换行符的内容:

所以想问问大家,有没有什么解决方案,不用手动替换所有换行符就能让Swing正常处理这类HTML?我用的是Java 8。
备注:内容来源于stack exchange,提问作者Cagepi




