[英]Java swing, JLabel with html text not rendering properly on hovers
[英]How to append html text to JLabel in Java Swing
我正在尝试将带有 HTML 标签的文本附加到 JLabel 中已有的文本并且也有 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 标记,其余文本未显示
快速解决方案是避免在文本末尾写入</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>");
当然,您可以使用substring
和其他东西代替replaceAll
,但这是我会使用的。
您首先要设置变量本身,然后在获取文本中再次设置。 您可以做的简单的事情是创建两个不同的字符串变量并将它们设置为 jlabel。 按照这里你可以:
String htmlstr1 = "html hello world tag";
String htmlstr2 = "<html> HERO NAME : "
+
"<br> HERO CLASS : " +
"<br> HERO LEVEL : " +
"<br> XP : " +
"<br> ATTACK POINTS : " +
"<br> DEFENCE POINTS : " +
"<br> HIT POINTS : " + "</html>");
Jlabel.setText(htmlstr1+htmlstr2):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.