JLabel的Newline
如何在JLabel
显示换行符?
例如,如果我想要:
你好,世界!
等等等等等等
这就是我现在所拥有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
这是显示的内容:
Hello World!blahblahblah
原谅我,如果这是一个愚蠢的问题,我只是学习一些Swing的基本知识…
用<html></html>
环绕string,并用<br>
分隔线条。
JLabel l = new JLabel("<html>Hello World!<br>blahblahblah</html>", SwingConstants.CENTER);
您可以使用Jide开源组件中的MultilineLabel组件。
你可以做
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
它会自动包装在适当的位置。
感谢Aakash推荐JIDE MultilineLabel。 JIDE的StyledLabel最近也被增强以支持多行。 我会推荐它在MultilineLabel上,因为它有许多其他很棒的function。 您可以查看下面的StyledLabel文章。 它仍然是免费和开源的。
JLabel实际上能够显示一些基本的HTML,这就是为什么它不响应你使用换行符(不像System.out)。
如果你放入相应的HTML并使用<BR>
,你会得到你的换行符。
你可以尝试这样做:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
这样做的好处是:
- 它取代所有换行,
<br/>
而不失败。 - 它自动地用
<
和>
分别,防止一些渲染破坏。
它所做的是:
-
"<html>" +
在开头添加了一个开始的html
标签 -
.replaceAll("<", "<").replaceAll(">", ">")
转义<
和>
-
.replaceAll("\n", "<br/>")
用你想要的(HTML换行符)标签replace所有换行 - …和
+ "</html>"
closures我们的html
标签。
PS:我非常遗憾地想起这么一个老post,但无论如何,你的Java有一个可靠的片段!