带有html标签的java swing标签-空格消失

问题描述 投票:0回答:1

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

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个回答
0
投票

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

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

可能的解决方案:

  • 尝试使用&nbsp;而不是Unicode。尽管这可能会导致相同的副作用
  • 尝试将每个空间包围在其自己的元素中,例如<span><b>或类似元素。这可能有效,但是会很麻烦。另外,不确定JLabel是否可以处理跨度。

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

© www.soinside.com 2019 - 2024. All rights reserved.