【问题标题】:java swing label with html tag - white spaces disappearing带有html标签的java swing标签 - 空白消失
【发布时间】:2020-09-07 07:50:01
【问题描述】:

我正在尝试为字符串中的一个字符着色,但是当我这样做时,大多数空格都会消失。为什么会发生这种情况,有什么解决办法吗?

map[9]  =       "#                                     #        ####     #";
map[10] =       "#                                     #        #        #";
map[11] = "<html>#                                     #        #<font color=YELLOW>.</font>       #</hmtl>";
map[12] =       "#   ###################################        #        #";
map[13] =       "#   #                                 #        ####     #";

我将字符串分配给数组,然后将每个字符串设置为自己的 JLabel

我已经尝试输入 unicode 空白字符(普通空白 \u0020 和不间断空白 \u00A0): 不间断空白有效,但我后来必须检查播放器位置是否有空白,我没有让它与 \u00A0 一起正常工作。

另外,当我对字符串使用 html 标记时,(文本或 JLabel - 我不知道两者中的哪一个)稍微偏移到底部。我怎样才能让它保持在没有 html 标签的相同位置?

【问题讨论】:

    标签: java html swing jlabel


    【解决方案1】:

    空格消失了,因为 HTML 与空格无关。这意味着文档的结构和布局不取决于是否有空格、制表符和换行符,以及它们有多少。

    这是规范要求,是所有 HTML 解析器所必需的,包括 JLabel 中的“伪 HTML”用法(仅支持基本格式的 HTML 的最小子集)。

    可能的解决方案:

    • 尝试使用&amp;nbsp; 而不是Unicode。不过,这可能会导致相同的副作用
    • 尝试用自己的元素包围每个空间,例如&lt;span&gt;&lt;b&gt; 或类似的。这可能有效,但会变得非常麻烦。另外,不确定 JLabel 是否可以处理跨度。

    除此之外,如果您想实现某种进度指示器或“搜索线”,也许有比彩色 JLabel 更好的解决方案,例如 JProgressBar...

    【讨论】:

    • 好的,谢谢,&nbsp 完成了这项工作。并感谢您的解释!
    • @Tikka,不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2013-08-08
    • 1970-01-01
    • 2015-11-10
    • 2012-10-27
    相关资源
    最近更新 更多