Answers:
用包围字符串,<html></html>
并用断开线<br/>
。
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
您可以尝试执行以下操作:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
这样做的好处是:
<br/>
,而不会失败。<
和分别替换>
为<
和>
,以防止某些渲染破坏。它的作用是:
"<html>" +
html
在开头添加一个开始标签.replaceAll("<", "<").replaceAll(">", ">")
逃脱<
和>
方便.replaceAll("\n", "<br/>")
用br
(HTML 换行)标记替换所有换行符+ "</html>"
关闭html
标签。PS:很抱歉唤醒这么老的文章,但是无论如何,您都有一个可靠的Java代码段!
您可以在Jide开源组件中使用MultilineLabel组件。
感谢Aakash推荐JIDE MultilineLabel。JIDE的StyledLabel最近也得到了增强,以支持多行。我会在MultilineLabel上推荐它,因为它还有许多其他很棒的功能。您可以在下面的StyledLabel上查看文章。它仍然是免费和开源的。
JLabel实际上能够显示一些基本的HTML,这就是为什么它不响应您对换行符的使用的原因(与System.out不同)。
如果放入相应的HTML并使用<BR>
,则会得到换行符。
<br>
标记,该标记由堆栈溢出格式化为帖子中的文字换行符。