如何在JLabel
中显示换行符?
例如,如果我想:
Hello World!
blahblahblah
这就是我现在所拥有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
这是显示的内容:
Hello World!blahblahblah
请原谅我,如果这是一个愚蠢的问题,我只是学习一些Swing基础知识......
答案 0 :(得分:152)
用<html></html>
围绕字符串并用<br/>
打破这些行。
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
答案 1 :(得分:8)
您可以尝试这样做:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
这样做的好处是:
<br/>
替换所有换行符,但不得失败。<
和>
分别替换为<
和>
,以防止一些渲染造成破坏。它的作用是:
"<html>" +
在开头添加了一个开头html
标记.replaceAll("<", "<").replaceAll(">", ">")
为了方便而逃避<
和>
.replaceAll("\n", "<br/>")
替换所有换行符br
(HTML换行符)标记,以满足您的需求+ "</html>"
在最后关闭我们的html
标记。P.S。:我很遗憾醒来这么老的帖子,但无论如何,你有一个可靠的Java代码片段!
答案 2 :(得分:2)
您可以在Jide开源组件中使用MultilineLabel组件。
答案 3 :(得分:2)
你可以做到
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
它会在适当的时候自动换行。
答案 4 :(得分:2)
感谢Aakash推荐JIDE MultilineLabel。 JIDE的StyledLabel最近也得到了增强,以支持多线。我会推荐它通过MultilineLabel,因为它有许多其他很棒的功能。您可以在下面查看有关StyledLabel的文章。它仍然是免费和开源的。
答案 5 :(得分:1)
JLabel实际上能够显示一些基本的HTML,这就是为什么它没有响应你对换行符的使用(不像System.out)。
如果您输入相应的HTML并使用<BR>
,则会获得换行符。