首页 > 解决方案 > 如何在 Java Swing 中将 html 文本附加到 JLabel

问题描述

我正在尝试将带有 HTML 标签的文本附加到已经在 J​​Label 中并且也有 HTML 标签的文本中

public class BattleConsoleUI {
    private JLabel battleInfo = new JLabel("<html> Hello World <br></html>");

battleInfo.setText(battleInfo.getText() + 
            "<html> HERO NAME :   " +
            "<br> HERO CLASS      :   "  +
            "<br> HERO LEVEL      :   "  +
            "<br> XP              :   "  +
            "<br> ATTACK POINTS   :   "  +
            "<br> DEFENCE POINTS  :   "  +
            "<br> HIT POINTS      :   "  + 
            "</html>");
}

我希望它显示 Hello World 加上附加的文本,但由于第一个关闭 HTML 标记,其余文本未显示

标签: javaswing

解决方案


快速的解决方案是避免</html>在文本末尾书写。Swing 只需要开始标签<html>就可以显示 HTML 文本。就像是:

label.setText("<html>first text");
label.setText(label.getText() + " this is second"); //Still an HTML text

如果您坚持关闭 HTML 标记并</html>在末尾使用,则必须在添加新文本之前替换它:

label.setText(label.getText().replaceAll("</html>","") + "i append a text</html>");

当然不是replaceAll你可以使用substring和其他东西,但这是我会使用的。


推荐阅读