You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让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>");
    }
}

包含换行符时,弹窗错误显示了Hello和闭合标签

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

在线HTML编辑器正常渲染带换行符的内容

所以想问问大家,有没有什么解决方案,不用手动替换所有换行符就能让Swing正常处理这类HTML?我用的是Java 8。

备注:内容来源于stack exchange,提问作者Cagepi

火山引擎 最新活动